using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using Microsoft.Office.Interop.Excel;
namespace TestAccess
{
class Program
{
static void Main(string[] args)
{
#region Microsoft.Office.Interop.Excel2007
Console.WriteLine("Microsoft.Office.Interop.Excel 2007");
string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;";
strConnection += @"Data Source=C:\Documents and Settings\v-changl\My Documents\couse.xlsx;";
strConnection += "Extended Properties=\"Microsoft.Office.Interop.Excel 12.0 Xml;HDR=YES\";";
using (OleDbConnection objConnection = new OleDbConnection(strConnection))
{
objConnection.Open();
OleDbDataAdapter myCommandd = new OleDbDataAdapter("select * from [Sheet1$]", objConnection);
DataSet ds = new DataSet();
//Sheet1是个小型帐本,第一行是人名,以下每行是每人所花费的钱数.
myCommandd.Fill(ds, "[Sheet1$]");
System.Data.DataTable dt = ds.Tables["[Sheet1$]"];
Console.WriteLine(dt.Columns[0].ToString());
Console.WriteLine(dt.Columns[1].ToString());
DataRow drDisplay = dt.Rows[0];
int[] num = new int[dt.Columns.Count];
for (int j = 0; ; )
{
for (int i = 0; i < dt.Columns.Count; i++)
{
if (drDisplay[i] is DBNull) ;
else
num[i] += Convert.ToInt32(drDisplay[i]);
}
if (++j >= dt.Rows.Count) break;
drDisplay = dt.Rows[j];
}
drDisplay = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i++)
{
drDisplay[i] = num[i];
}
dt.Rows.Add(drDisplay);
dt.AcceptChanges();
// 把datatable重新写进excel?
// 也许直接在excel中新加一行是个好办法.正在尝试中.
objConnection.Close();
}
#endregion
}
}
}
转载于:https://www.cnblogs.com/TimeSpace/archive/2009/05/06/1450686.html