首页 新闻 会员 周边 捐助

Excel导入数据丢失问题

0
悬赏园豆:20 [已解决问题] 解决于 2013-11-12 17:46

  这是字符串:

string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1';";

 都说IMEX=1的作用是只要TypeGuessRows设置的行数中有一列是混合型数据,那整列都会强制以文本格式导入数据。

可是我用了发现IMEX=1根本不起作用,用不用的结果都是一样的,同样是比较TypeGuessRows设置的行数中,哪种类型的数据多,就采取哪种格式写入。

因此始终会丢失数据,究竟IMEX=1是不是已经没用了呢,求大神分析赐教?

 

 目前我的解决方法只能是 TypeGuessRows 设为1,然后在Excel中将数据列第一列设置为文本格式。

KKKK天才的主页 KKKK天才 | 初学一级 | 园豆:150
提问于:2013-11-07 16:42
< >
分享
最佳答案
0

用NPOI读取execl数据吧,比较简单,容易控制

收获园豆:10
秋壶冰月 | 大侠五级 |园豆:5903 | 2013-11-07 17:12

在试着用这个,不过有好的实例么?

KKKK天才 | 园豆:150 (初学一级) | 2013-11-08 09:07
秋壶冰月 | 园豆:5903 (大侠五级) | 2013-11-08 12:21
其他回答(3)
0

这种方式木有做过,Aspose Cells 导入导出都很方便

收获园豆:5
*^__^* | 园豆:428 (菜鸟二级) | 2013-11-07 19:30

 这个导入会全部数据都是文本类型吧,然后存储到数据库的时候有点问题。

支持(0) 反对(0) KKKK天才 | 园豆:150 (初学一级) | 2013-11-08 09:07
0

会用前8行的数据类型来作为导入的数据类型。检查下会不会是这个问题?

收获园豆:3
幻天芒 | 园豆:37207 (高人七级) | 2013-11-07 20:56

 是这个问题,不过已经设定TypeGuessRows为很大的值 而且IMEX=1  可是混合列依然不起作用。

支持(0) 反对(0) KKKK天才 | 园豆:150 (初学一级) | 2013-11-08 09:06

@Kingson Yang: 

一个改进的措施是IMEX=1与注册表值TypeGuessRows配合使用,TypeGuessRows 值决定了ISAM驱动程序从前几条数据采样确定数据类型,默认为“8”。可以通过修改“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel”下的该注册表值来更改采样行数。如果改为0,则表示所有行均使用文本类型。

地址:http://www.cnblogs.com/firehutter/archive/2012/05/30/2525745.html ,试试吧~

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2013-11-08 09:48

@幻天芒:  我一直都是用这些做的,不过依然存在问题。

支持(0) 反对(0) KKKK天才 | 园豆:150 (初学一级) | 2013-11-12 17:45
0

个人觉得NPOI已经足够强大了

收获园豆:2
轻狂の书生 | 园豆:1042 (小虾三级) | 2013-11-09 19:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册