日期:2014-05-17  浏览次数:20562 次

excel 导入数据到sql。就出问题了!
 //03版本
                        if (exp == "xls" || exp == "XLS")
                        {
                            strCon = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";
                        }
                        //07版本
                        else
                        {
                            strCon = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + filePath + ";Extened Properties='Excel 12.0 Xml;HDR=YES'";
                        }

连接语句是这个样字。 03的没一点问题。但一导入07的  就提示“找不到可安装的 ISAM”。我把07的连接语句中的Microsoft.Ace.OleDb.12.0改成Microsoft.Jet.OleDb.12.0,就提示“未在本地计算机上注册“Microsoft.Jet.OleDb.12.0”提供程序”。 纠结啊! 
------最佳解决方案--------------------
07的代码改为如下

strCon = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0; HDR=No; IMEX=1;\"
这个引号也不能少,细节要注意
------其他解决方案--------------------
菜鸟求帮忙! 搞不明白了,网上的一些方法也看了,不行啊!
------其他解决方案--------------------
引用:
07的代码改为如下

strCon = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0; HDR=No; IMEX=1;\"
这个引号也不能少,细节要注意



用你的还真OK。不过你最后还是少了个" 。呵呵。这么写有原因吗?
------其他解决方案--------------------
引用:
引用:07的代码改为如下

strCon = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0; HDR=No; IMEX=1;\"
这个引号也不能少,细节要注意


用你的还真OK。不……

有的 当读取2007Excel的时候,要加一个IMEX=1,当写的时候 IMEX=0.这是一个约定格式规范
------其他解决方案--------------------
有没有装AccessDatabaseEngine呢?
------其他解决方案--------------------
引用:
引用:07的代码改为如下

strCon = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0; HDR=No; IMEX=1;\"
这个引号也不能少,细节要注意


用你的还真OK。不……

亲,记得结贴啊。。。。