C# 读取Excel并解析
2020-12-22 23:27
阅读:584
标签:datatable 未在 string 高级 alt prope 注意 错误 本地
public static DataTable GetExcelToDataTableBySheet(string FileFullPath, string SheetName="") { //SheetName = "Sheet1$"; //HDR=Yes, 表示第一行为列名第二行才是数据 / HDR=No, 第一行就是数据; string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + FileFullPath + ";Extended Properties=‘Excel 12.0; HDR=YES; IMEX=1‘"; using (OleDbConnection conn = new OleDbConnection(strConn)) { DataSet ds = new DataSet(); //如果想要按列过滤的话 eg: "SELECT * FROM [{0}] where [列名] is not null", 和sql有点类似 OleDbDataAdapter odda = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}] where [设备编号] is not null", SheetName), conn); odda.Fill(ds, SheetName); return ds.Tables[0]; } }
运行程序时,可能报 "未在本地计算机上注册“microsoft.ACE.oledb.12.0"的错误,解决方案如下.
1、安装数据访问组件:
1)适用于office2007的
Microsoft Access Database Engine 2007 Office system 驱动程序:数据连接组件
https://download.csdn.net/download/willingtolove/12584343 (亲测没问题!xls和xlsx格式都可以成功读取!)
2)适用于office2010的
Microsoft Access Database Engine 2010 Redistributable
https://www.microsoft.com/zh-CN/download/details.aspx?id=13255 (亲测没问题!注意x64还是x86!)
2、如何是在web项目中执行进行转化, 在IIS应用程序池中,设置“”启用兼容32位应用程序”;
IIS双击应用程序池->双击相关部署的项目->点击高级设置->启动32位应用程序 选择true

就大功告成啦!
C# 读取Excel并解析
标签:datatable 未在 string 高级 alt prope 注意 错误 本地
原文地址:https://www.cnblogs.com/stephenzengx/p/13597413.html
上一篇:使用 C# 捕获进程输出
下一篇:c# 常用的正则表达式
评论
亲,登录后才可以留言!