现在的位置: 首页 > 综合 > 正文

Excel的操作总结

2012年12月21日 ⁄ 综合 ⁄ 共 1812字 ⁄ 字号 评论关闭
程序中建立Excel文件
 1using Excel = Microsoft.Office.Interop.Excel;
 2using System;
 3using System.Runtime;
 4using System.Reflection;
 5//需要添加Excel的COM引用
 6public void CreateExcelFile(string FilePath)
 7{
 8if (!File.Exists(FilePath))
 9{
10Excel.ApplicationClass ExcelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
11Excel.Workbook ExcelBook = ExcelApp.Workbooks.Add(Missing.Value);
12ExcelApp.DisplayAlerts = false;
13
14Excel.Worksheet ExcelSheet =
     (Excel.Worksheet)ExcelBook.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value);
15ExcelSheet.Name = "DIV_LINK";
16                
17ExcelBook.SaveAs(FilePath, Excel.XlFileFormat.xlWorkbookNormal,
     Missing.Value, Missing.Value,
falsefalse, Excel.XlSaveAsAccessMode.xlShared,
     Missing.Value, Missing.Value,Missing.Value,Missing.Value,Missing.Value);
18ExcelBook.Close(Excel.XlSaveAction.xlDoNotSaveChanges, Missing.Value, Missing.Value);
19
20ExcelApp.Quit();
21
22System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
23GC.Collect();
24}

25//这里可以直接添加操作Excel文件的代码
26}

补充:在上文的注释处添加的用Jet访问Excel插入数据的代码:

 1string ConnStr =
 2"provider=Microsoft.Jet.Oledb.4.0;data source=" + FilePath + ";Extended Properties=Excel 8.0;";
 3OleDbConnection OleConn = new OleDbConnection(ConnStr);
 4OleDbCommand OleCmd = new OleDbCommand();
 5OleCmd.Connection = OleConn;
 6OleConn.Open();
 7//DT_1是我的一个数据表
 8for (int i = 0; i < DT_1.Rows.Count; i++)
 9{
10/* SQL语句中需要注意的是把Excel当成Jet数据库时
11*  Excel的WorkSheet就是对应的数据表,
12*  需要给WorkSheet名加上$后缀,在普通SQL语句中需要用[]将表包起来,
13*  在DTS语句中,不需要用[]包装WorkSheet名,但仍需要有$后缀
14*  比如:
15*  SELECT F1,F2 FROM OPENROWSET('Microsoft.JET.OLEDB.4.0','Excel 8.0;HDR=NO;Database=C:/A.xls',Sheet1$)
16*/

17OleCmd.CommandText = "insert into [DIV_LINK$](F1) values('" + DT_1.Rows[i][1].ToString() + "')";
18OleCmd.ExecuteNonQuery();
19}

20OleConn.Close();

抱歉!评论已关闭.