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