繁体   English   中英

使用c#导入excel doc时,如何防止前导零被剥离?

[英]How do you prevent leading zeros from being stripped when importing an excel doc using c#

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

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

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

您的milage可能会有所不同,具体取决于您安装的版本。 IMEX = 1扩展属性告诉Excel将混合数据视为文本。

前缀''

使用'强制Excel将其视为文本而不是数字来预先添加单元格的内容。 '将不会显示在Excel中。

有一个注册表黑客可以强制Excel在读取列时读取超过前8行的内容以确定类型:

更改

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

要为0以读取所有行,或将其设置为该行数。

并不是说这会带来轻微的性能影响。

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

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

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

如果有效,请告诉我。

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

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

前缀为'将工作,一旦数据已存在于Excel文档中,是否有合理的方式以编程方式执行此操作?

在字符串前添加“\\ t”。 它会使字符串显示在新选项卡中。

暂无
暂无

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

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