首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Excel、OleDb和前导零

Excel、OleDb和前导零
EN

Stack Overflow用户
提问于 2009-01-13 06:10:01
回答 3查看 2.8K关注 0票数 0

我有一个使用OleDb将数据从excel文件读取到DataSet中的过程。在我开始看到带有前导0的数据之前,一切都运行得很好。文本的格式为常规或文本。

我已经在OleDb连接中设置了IMEX=1,但是对于每个前导为0的条目,我在数据集中仍然得到一个空值。

有没有人知道解决这个问题的方法?

编辑

作为补充信息,我必须保留前导0,并将该列的格式设置为General。我也尝试过文本。

第一个具有前导零的条目位于第11行,并返回null。此特定工作表上的所有其他数据都是此列的数字。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-01-13 06:16:31

我敢打赌,数据是以文本形式存储在Excel电子表格中的;因为它本身没有前导零(尽管可以对单元格进行格式化以显示它们)。我想OleDb正在询问Excel是什么数据类型,而Excel认为它们是字符串。

查看其中一个Excel单元格,看看它在顶部的数据输入条中是否有一个加载零;或者它是否有一个前导撇号或类似的符号?

如果是这样(或者即使不是这样,但您想要未格式化的数据),我的头顶上的一种方法是将工作表复制到另一个工作表,并使用Val(address)函数转换Excel列,并重新格式化它,不带前导零;然后从中读取。

票数 0
EN

Stack Overflow用户

发布于 2009-01-13 07:38:48

我所能看到的最好的事情是,你必须创建一个预先格式化的excel文件,然后将它用于你所需要的数据。

票数 0
EN

Stack Overflow用户

发布于 2009-01-14 00:59:58

您的前10行是纯数字数据吗?

那么驾驶员正在做出判断,即整个列都是数字。当它遇到不符合的数据时,它就会卡住。您可能会看到这是NULL或0。

我会尝试:

1)删除不带它的IMEX -实验

2)尝试在该列的所有数据中添加一个单引号作为第一个字符。

这将在Excel中“强制文本”。作为测试,只需在前11行尝试它。

这将强制驱动程序将该列视为文本。NULL应该会消失。

有一些方法可以增加行的“样本大小”...但是我记不住要在连接字符串中使用的关键字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/438099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档