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