赞
踩
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、示例连接如下所示:
- string constr "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+str_path +@"Extended Properties=""Excel 12.0 Macro;HDR=YES"""
- oleDbConnection olecon new oleDbConnection(constr);
- olecon.Open();
- String sql "SELECT FROM [Sheet1s]";
- oleDbCommand cmd new oleDbCommand (sql,olecon);
- oleDbDataReader dr cmd.ExecuteReader ()
- for (int i=1;i<Convert.ToInt16(tbx_row.Text);i++)
- {
- dr.Read();
- }
- while (dr.Read()&&dr[Convert.ToInt16(tbx_sch.Text)-1].Tostring().Trim()!="")
- {
- cls_tasktask new cls_task(dr[Convert.ToInt16(tbx_code.Text)-1].ToString().Trim(),
- dr [Convert.ToInt16(tbx note.Text)-1].Tostring ().Trim(),
- dr[Convert.ToInt16(tbx_per.Text)-1].ToString().Trim(),
- dr[Convert.ToInt16(tbx_sch.Text)-1].Tostring().Trim(),
- dr [Convert.ToInt16(tbx_real.Text)-1].Tostring().Trim(),
- Convert.ToInt16(tbx bef.Text));
- task.send email(emails)
- }
- olecon.close();
- cmd.Dispose();
- dr.Dispose();
5、使用中尚需注意以下几点
a)SQL语句中FROM 后的SHEET名应放在方括号中,且后续$符号;
b)datareader读取的数据,dr[0]对应于第一列数据;
c)dr并不会遇到空行认为文件结束(即使空行后再无有内容的行),因而需做判断,使其到达空行后停止读取,而不是单独使用dr.read()的返回值判断;
1、在项目中引用COM组件,选择EXCEL(非全称)。
2、在程序中引用EXCEL库。
3、使用EXCEL各功能
- using Microsoft.Office.Interop.Excel;
- //创建EXCEL进程
- Microsoft.Office.Interop.Excel.Application app1 = new Microsoft.Office.Interop.Excel.Application();
- //创建EXCEL工作表
- Microsoft.Office.Interop.Excel._Workbook wkbk1 = (Microsoft.Office.Interop.Excel._Workbook)app1.Workbooks.Add();
- //引用EXCEL工作薄
- Microsoft.Office.Interop.Excel._Worksheet wkst1 = (Microsoft.Office.Interop.Excel._Worksheet)wkbk1.ActiveSheet;
- //使用EXCEL单元格
- wkst1.Cells[1,1] = "this is "
- app1.Visible = true;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。