C#读取和操作EXCEL

本文介绍了使用.NET通过OLEDB连接读取EXCEL文件的高效方法,包括连接2007及以上版本的XLSM和XLSX文件的连接字符串,以及使用示例代码和注意事项。同时提到了利用COM组件操作Excel的工作簿、工作表和单元格的方法。
摘要由CSDN通过智能技术生成

读取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、示例连接如下所示:

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()的返回值判断;

操作EXCEL

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;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值