6

我能够连接并读取excel文件没问题。但是,当导入具有前导零的邮政编码等数据时,如何防止 excel 猜测数据类型并在此过程中去除前导零?

4

8 回答 8

6

我相信您必须在连接字符串中设置选项以强制文本导入而不是自动检测它。

Provider=Microsoft.ACE.OLEDB.12.0;
    Data Source=c:\path\to\myfile.xlsx;
    Extended Properties=\"Excel 12.0 Xml;IMEX=1\";

您的里程可能会因您安装的版本而异。IMEX=1 扩展属性告诉 Excel 将混合数据视为文本。

于 2008-08-22T17:10:57.210 回答
1

前缀为 '

于 2008-08-22T17:06:41.837 回答
1

使用 ' 作为单元格内容的前缀会强制 Excel 将其视为文本而不是数字。' 不会显示在 Excel 中。

于 2008-08-22T17:08:31.287 回答
1

有一个注册表黑客可以强制 Excel 在读取列以确定类型时读取多于前 8 行:

改变

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows 

为 0 以读取所有行,或另一个数字将其设置为该行数。

并不是说这会对性能产生轻微影响。

于 2009-03-24T14:41:12.837 回答
0

我认为这样做的方法是格式化源 excel 文件,以便将列格式化为文本而不是常规。选择整列并右键单击并选择格式单元格,从选项列表中选择文本。

我认为这将明确定义列内容是文本,应该这样对待。

让我知道这是否有效。

于 2008-08-22T17:08:51.317 回答
0

将文件另存为制表符分隔的文本文件也很有效。

---老 不幸的是,我们不能依赖 excel 文档的列来保持特定格式,因为用户会定期将数据粘贴到其中。如果我们依赖于某个列的数据类型,我不希望应用程序崩溃。

以 ' 为前缀会起作用,一旦数据已经存在于 excel 文档中,是否有合理的方法以编程方式执行此操作?

于 2008-08-22T17:16:36.867 回答
0

从 Sql server发送值00022556'=" 00022556"'处理前导零问题的好方法

于 2013-12-26T11:49:43.987 回答
0

在您的字符串之前添加“\t”。它会使字符串出现在新选项卡中。

于 2015-04-01T14:35:40.157 回答