首页 新闻 搜索 专区 学院

asp.net Excel转换成DataTable 问题

0
[待解决问题]

在64位的2008服务器上将上传的Excel转换成DataTable,报错“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”

在网上搜了下 解决办法1
  选择 该应用程序的 应用程序池 ------>选择高级设置 --------->启用32位应用程序 ------->true 
 这个办法在我这行不通,如果把应用程序迟设置成32位模式 那么就登录不了oracle了。

所以请各位高手赐教下 ,有没有不用new OleDbConnection的方式就能把Excel转换成Datatable的方式。

惩罚者的主页 惩罚者 | 初学一级 | 园豆:0
提问于:2011-07-06 15:32
< >
分享
所有回答(4)
0

可以考虑装个64位的office试试

artwl | 园豆:16536 (专家六级) | 2011-07-06 16:09
还有没有其他的办法!
支持(0) 反对(0) 惩罚者 | 园豆:0 (初学一级) | 2011-07-06 16:41
0

读取Excel数据的时候要用OLEDB,微软的东西不怎么开放,好像没有更好的方法了

卒子 | 园豆:588 (小虾三级) | 2011-07-06 20:06
靠 这回废了!
支持(0) 反对(0) 惩罚者 | 园豆:0 (初学一级) | 2011-07-07 09:26
0

在服务器上装OFFICE强烈不推荐!

可以试试第三方的组件如NPOI、MYXLS等。

邀月 | 园豆:25475 (高人七级) | 2011-07-07 09:42
谢了哥们太感谢你了,问题搞定!用了NPOI!
支持(0) 反对(0) 惩罚者 | 园豆:0 (初学一级) | 2011-07-07 15:48
0

可以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"); 
  • 杯具程序员 | 园豆:1718 (小虾三级) | 2011-07-31 00:19
    清除回答草稿
       您需要登录以后才能回答,未注册用户请先注册