读取Excel问题。

gy505539356 2012-05-07 05:34:12
public DataSet ExcelToDS(string Path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open(); //这里报错了。。。
string strExcel = "";
OleDbDataAdapter myCommand = null;
DataSet ds = null;
strExcel = "select * from [sheet1$]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
ds = new DataSet();
myCommand.Fill(ds, "table1");
return ds;
}


错误信息:The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.


百度了下,找了几个解决方案试了都不行。。
下了个 msjetoledb40.dll放到system32下面运行regsvr32 msjetoledb40.dll,提示"msjetoledb40.dll" is not an executable file and no registration helper is registered for this file type.

生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86,这个也设置了,还是一样的。

操作系统是 window2003 英文版。


求解。
...全文
165 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-05-08
  • 打赏
  • 举报
回复
安装http://www.microsoft.com/en-us/download/details.aspx?id=13255

你可以使用这个方法读取,4.0没有64位版本的

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties="Excel 12.0;HDR=YES";

gy505539356 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

这个问题我好久前像是遇到过,记不太清怎么弄的了。你可以更新一下mdac试试。
[/Quote]
额,我试试看。
gy505539356 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

会不会是path不对 好像得带后.mdb的吧
[/Quote]
path是excel文件地址,要带.mdb ?
cnwin 2012-05-08
  • 打赏
  • 举报
回复
这个问题我好久前像是遇到过,记不太清怎么弄的了。你可以更新一下mdac试试。
w767687781 2012-05-08
  • 打赏
  • 举报
回复
会不会是path不对 好像得带后.mdb的吧
gy505539356 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

4.0 改为 3.5 试试
[/Quote]
0.0、 一样的。
ONE-PIECE 2012-05-08
  • 打赏
  • 举报
回复
4.0 改为 3.5 试试
tiangong789 2012-05-08
  • 打赏
  • 举报
回复
你的office版本问题 你试试上面其他人提供的。也可以试试这个
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../Files/Employee.xls") + ";Extended Properties=Excel 8.0;";
jacie0617 2012-05-08
  • 打赏
  • 举报
回复
你装的是2007版本吧。
king_836456942 2012-05-08
  • 打赏
  • 举报
回复
Microsoft.Jet.OLEDB.4.0 改成Microsoft.Jet.OLEDB.4.0.0.1好像也行的吧~~~,我记得以前连access数据库一般都是用这个版本
gy505539356 2012-05-08
  • 打赏
  • 举报
回复
0.0
纠结这么久,Microsoft.ACE.OLEDB.12.0;改成这个就可以了。。。
gy505539356 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

安装http://www.microsoft.com/en-us/download/details.aspx?id=13255

你可以使用这个方法读取,4.0没有64位版本的

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties="Excel 1……
[/Quote]
Source=c:\myFolder\myOldExcelFile.xls
这个是什么东西?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧