Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在使用c导入excel文档时,如何防止前导零被剥离_C#_Asp.net_Excel_Ado.net - Fatal编程技术网

C# 在使用c导入excel文档时,如何防止前导零被剥离

C# 在使用c导入excel文档时,如何防止前导零被剥离,c#,asp.net,excel,ado.net,C#,Asp.net,Excel,Ado.net,我能够连接并读取excel文件,没有问题。但是,当导入具有前导零的zipcodes等数据时,如何防止excel猜测数据类型并在过程中去掉前导零?前缀为“在单元格内容前面加上”将强制excel将其视为文本而不是数字。'将不会显示在Excel中。我认为这样做的方法是格式化源Excel文件,使列的格式为文本而不是常规。选择整个列,单击鼠标右键并选择“设置单元格格式”,然后从选项列表中选择“文本” 我认为这将明确定义列内容是文本,并且应该这样对待 让我知道这是否有效。我相信您必须在连接字符串中设置选项以

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

前缀为“

在单元格内容前面加上”将强制excel将其视为文本而不是数字。'将不会显示在Excel中。

我认为这样做的方法是格式化源Excel文件,使列的格式为文本而不是常规。选择整个列,单击鼠标右键并选择“设置单元格格式”,然后从选项列表中选择“文本”

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


让我知道这是否有效。

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

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

根据安装的版本,您的密码可能会有所不同。IMEX=1扩展属性告诉Excel将混合数据视为文本。

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

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


在excel文档中已经存在数据后,是否有合理的方法以编程方式在前面加上“将起作用”?

有一种注册表黑客,在读取列以确定类型时,可能会强制excel读取前8行以上的数据:

改变

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows 
设置为0以读取所有行,或设置另一个数字以将其设置为该行数


并不是说这会对性能造成轻微影响。

从Sql server以“=00022556”的形式发送值00022556是处理前导零问题的最佳方法。这将使字符串看起来像是在一个新选项卡中