如何使用oledb读取连字符的邮政编码
我有一个包含地址的Excel电子表格。 我正在使用OLEDB从电子表格读取数据并将其存储到C#中的DataTable中。
String connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + @";Extended Properties=""Excel 8.0;HDR=1;IMEX=1""";
下面是问题:当我使用DataSet Visualizer时,在邮政编码字段中有一个空string。
12345-1234 --> ""
所以我想纠正这种行为,使邮政编码出现,因为它应该。 如果我必须在连字符后切掉数字,那就没问题了。 我怎样才能确保邮政编码被读取?
Excel通常有自己的想法应该如何格式化一列。 例如,如果您有一个包含邮政编码的列,其中一些使用Plus 4,而另一些则不使用,那么对于如何对列进行格式化,这几乎是一个垃圾邮件。 也许Excel会假设它用Zip + 4填充,也许它会采用5位数字的拉链,或者只是数字。 我已经使用这些文件多年了,我确信微软使用随机数字生成器来做出这个决定。
至于你原来的问题,根据这个网站 ,CONVERT是一个有效的SQL标量函数,所以也许类似
SELECT CONVERT(BadField, SQL_CHAR) AS FixedField FROM [Table$]
可能工作?
我的第一个倾向是build议使用COM(而不是OleDb)从电子表格中读取数据。 我很确定你能够读取每个单元格的格式并相应地处理它,但是我总是通过COM发现Excel很困难,而且速度也不是很快。