繁体   English   中英

Excel,OleDb和前导零

[英]Excel, OleDb, and Leading zeros

我有一个使用OleDb将数据从Excel文件读取到DataSet的过程。 一切运行良好,直到我开始看到前导0的数据。 文本的格式设置为“常规”或“文本”。

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

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

编辑

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

第一个前导零的条目位于第11行,并且返回null。 此特定工作表上的所有其他数据均为该列的编号。

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

查看其中一个Excel单元格,然后在顶部的数据输入条中查看其是否有零加载。 还是有前置撇号或类似的撇号?

如果是这种情况(或者即使不是,但是您想要未格式化的数据),那么我想尽办法的一种方法是将工作表复制到另一个工作表,并使用Val(address)函数转换Excel列,然后格式化它没有前导零; 然后从中读取。

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

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

然后,驾驶员做出判断,认为整列都是数字。 当遇到不合适的数据时,它会窒息。 您可能会看到它为NULL或0。

我会尝试:
1)删除IMEX-没有它的实验
2)尝试将单引号作为该列中所有数据的第一个字符添加。
这在Excel中是“强制文本”。 作为测试,请在前11行尝试。
这将强制驱动程序将列视为文本。 NULL应该消失。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM