当前位置:   article > 正文

C#读取和操作EXCEL_c# ace.oledb.12.0

c# ace.oledb.12.0

读取EXCEL

1、使用.NET读取EXCEL文件效率最高的方法是将EXCEL视为OLEDB数据源,进行数据连接,使用SQL语句读取;

2、使用时需要使用命名空间System.Data.OleDb;

3、连接2007以上的XLSM文件使用的连接字符串为:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + 包括路径的文件名 + @";Extended Properties=""Excel 12.0 Macro;HDR=YES""";

连接2007以上的XLSX文件使用连接字符串为:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + 包括路径的文件名 + @";Extended Properties=""Excel 12.0 Xml;HDR=YES"";"

4、示例连接如下所示:

  1. string constr "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+str_path +@"Extended Properties=""Excel 12.0 Macro;HDR=YES"""
  2. oleDbConnection olecon new oleDbConnection(constr);
  3. olecon.Open();
  4. String sql "SELECT FROM [Sheet1s]";
  5. oleDbCommand cmd new oleDbCommand (sql,olecon);
  6. oleDbDataReader dr cmd.ExecuteReader ()
  7. for (int i=1;i<Convert.ToInt16(tbx_row.Text);i++)
  8. {
  9. dr.Read();
  10. }
  11. while (dr.Read()&&dr[Convert.ToInt16(tbx_sch.Text)-1].Tostring().Trim()!="")
  12. {
  13. cls_tasktask new cls_task(dr[Convert.ToInt16(tbx_code.Text)-1].ToString().Trim(),
  14. dr [Convert.ToInt16(tbx note.Text)-1].Tostring ().Trim(),
  15. dr[Convert.ToInt16(tbx_per.Text)-1].ToString().Trim(),
  16. dr[Convert.ToInt16(tbx_sch.Text)-1].Tostring().Trim(),
  17. dr [Convert.ToInt16(tbx_real.Text)-1].Tostring().Trim(),
  18. Convert.ToInt16(tbx bef.Text));
  19. task.send email(emails)
  20. }
  21. olecon.close();
  22. cmd.Dispose();
  23. dr.Dispose();

5、使用中尚需注意以下几点

a)SQL语句中FROM 后的SHEET名应放在方括号中,且后续$符号;

b)datareader读取的数据,dr[0]对应于第一列数据;

c)dr并不会遇到空行认为文件结束(即使空行后再无有内容的行),因而需做判断,使其到达空行后停止读取,而不是单独使用dr.read()的返回值判断;

操作EXCEL

1、在项目中引用COM组件,选择EXCEL(非全称)。

2、在程序中引用EXCEL库。

3、使用EXCEL各功能

  1. using Microsoft.Office.Interop.Excel;
  2. //创建EXCEL进程
  3. Microsoft.Office.Interop.Excel.Application app1 = new Microsoft.Office.Interop.Excel.Application();
  4. //创建EXCEL工作表
  5. Microsoft.Office.Interop.Excel._Workbook wkbk1 = (Microsoft.Office.Interop.Excel._Workbook)app1.Workbooks.Add();
  6. //引用EXCEL工作薄
  7. Microsoft.Office.Interop.Excel._Worksheet wkst1 = (Microsoft.Office.Interop.Excel._Worksheet)wkbk1.ActiveSheet;
  8. //使用EXCEL单元格
  9. wkst1.Cells[1,1] = "this is "
  10. app1.Visible = true;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/612018
推荐阅读
相关标签
  

闽ICP备14008679号