System.Data.OleDb.OleDbException”类型的异常在 System.Data.dll 中发生 其他信息: 找不到可安装的 ISAM。

zxccxzzxccxz1 2015-05-22 10:29:58
错误如题目~
office版本是office2013
代码如下
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + savePath + ";" + "Extended Properties='Excel 15.0;HDR=YES;IMEX=2';";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
open的时候报的错
System.Data.OleDb.OleDbException”类型的异常在 System.Data.dll 中发生 其他信息: 找不到可安装的 ISAM。
...全文
277 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
於黾 2015-05-22
i疾风 2015-05-22

 private String getConnString()
        {
            String connectionString = String.Empty;
            if (excelFilePath != null)
            {
                //Excel版本不一样,连接字符串不一样
                if (excelFilePath.EndsWith(".xls"))
                {//Excel2003
                    connectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + excelFilePath + "; Extended Properties=Excel 8.0";
                }
            else
                {//Excel2007 up
                    connectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source=" + excelFilePath + "; Extended Properties=Excel 12.0";
                }
            }
            return connectionString;
        }
以上代码我以前用过的代码可以解决你的问题。问题出在03,07版本的连接字符串不一样。如果你入坑不深,建议不要再用oledb操作excel,因为将来1.格式不好更改。2.dom操作会出现线程错误且很难处理。3.隐藏坑。 推荐使用openxml,这是处理07之后的office所使用的东西。是个趋势,刚开始可能比较难看懂,但是早晚得看。 不过,只是简单的插入excel数据的话oledb插入时类似于sql的插入语句还是比较好用的。只是oledb处理的文件个人感觉文件都很大,具体原因没研究过。 PS:如果openxml觉得太难,且工程要求不高的话可以用CLOSEdxml,这个用起来上手比较快。但是核心还是openxml
回复
於黾 2015-05-22
savePath是个啥 你确定它是文件所在路径,而不是你想要保存的路径?
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2015-05-22 10:29
社区公告
暂无公告