程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 用ADO向Excel批量導入數據

用ADO向Excel批量導入數據

編輯:關於.NET

和前面一篇用OleDB的方法類似,我們可以用ADO從RecordSet對象向Excel批量插入數據,這個方法無法自動復制字段名。

我們需要引用ADO和Excel的com對象

參考代碼如下

1.using  System; 
2.using System.Collections.Generic;
3.using System.Text;
4.using System.Reflection;
5.using Excel = Microsoft.Office.Interop.Excel;
6.namespace ConsoleApplication18
7.{
8. class Program
9. {
10. static void Main( string [] args)
11. {
12. ExportDataToExcel( "server=(local);uid=sa;pwd=sqlgis;database=master" ,
13. "select * from sysobjects" ,@ "c:/testADO.xls" , "sysobjects" );
14. }
15.
16. static void ExportDataToExcel( string connectionString, string sql, string fileName, string sheetName)
17. {
18. Excel.Application app = new Excel.ApplicationClass();
19. Excel.Workbook wb = (Excel.WorkbookClass)app.Workbooks.Add(Missing.Value);
20. Excel.Worksheet ws = wb.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Excel.Worksheet;
21. ws.Name = sheetName;
22. try
23. {
24. ADODB.Connection conn = new ADODB.ConnectionClass();
25. conn.Open( "driver={SQL Server};" +connectionString, "" , "" ,0);
26. ADODB.Recordset rs = new ADODB.RecordsetClass();
27. rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0);
28. Excel.Range range = ws.get_Range( "A2" , Missing.Value);
29. range.CopyFromRecordset(rs, 65535, 65535);
30. }
31. catch (Exception ex)
32. {
33. string str = ex.Message;
34. }
35. finally
36. {
37. wb.Saved = true ;
38. wb.SaveCopyAs(fileName); //保存
39. app.Quit(); //關閉進程
40. }
41. }
42. }
43.}
44.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved