首页 新闻 会员 周边

C#导入EXCEL到数据库,用OLE连接EXCEL时一直报"外部表不是预期格式",但是打开要连接的excel文件就可以正常

0
[待解决问题]

C#导入EXCEL到数据库,用OLE连接EXCEL时一直报"外部表不是预期格式",但是打开要连接的excel文件就可以正常使用了,这是为什么?

缪健的主页 缪健 | 菜鸟二级 | 园豆:214
提问于:2015-06-01 16:23
< >
分享
所有回答(5)
0

你的那个Excel的Sheet名字跟导入时C#中写的那个名字是否一致

wangYiYi | 园豆:13 (初学一级) | 2015-06-01 16:32

一样啊

支持(0) 反对(0) 缪健 | 园豆:214 (菜鸟二级) | 2015-06-01 17:43
1

Excel要是打不开EXCEL文件那叫有鬼了。所以你后面那个正常使用一点用都没有。

通常这种情况是EXCEL版本与你的OLEDB连接字符串的版本不一致造成的。

要知道EXCEL有一大堆的版本。

爱编程的大叔 | 园豆:30839 (高人七级) | 2015-06-01 17:33

可以打开,只要是要没有打开那个文件的时候调试的时候就会跳出"外部表不是预期格式"

支持(0) 反对(0) 缪健 | 园豆:214 (菜鸟二级) | 2015-06-01 17:43

@缪健: 不知道。

基本不建议使用OLEDB导入EXCEL,你用NPOI吧。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-06-01 17:45

@爱编程的大叔: 我是13版本的excel应该怎么写连接字符串呢?

支持(0) 反对(0) 缪健 | 园豆:214 (菜鸟二级) | 2015-06-01 18:01
0

文件没损坏,应该Excel版本问题

http://www.cnblogs.com/kingkongv/archive/2012/08/26/2657436.html

Moulton | 园豆:206 (菜鸟二级) | 2015-06-01 17:59
0

这是Excel版本的问题,比如07之前可能以.xls后缀名结尾,07以后的大多以.xlsx后缀名结尾,用OLEDB方式导入的时候,数据库内部的版本一般用的是07以前的版本(如果没记错的话),所以一般导入.xlsx格式的话,得用office打开才能识别。可以试着将excel文件换成.xls拓展名的版本。

ShadowFiend | 园豆:198 (初学一级) | 2015-06-02 11:49
0

Excel的格式不能调整,需要默认的格式,你把列名和字段拷贝到新的一个Excel 文件里,就可以了,我以前遇到这种情况就是这样解决的

嗷大喵学编程 | 园豆:165 (初学一级) | 2015-08-04 14:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册