CSV文件中读取错误的值
问题描述:
我有读CSV文件导入记录集合代码:CSV文件中读取错误的值
以下是主要部分:
conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Sheets("Reference").Range("DataSource").Value & ";" & _
"Extended Properties=""text; HDR=Yes; FMT=Delimited; IMEX=1;""")
strSQL = "Select * from file.csv"
rsFutures.Open strSQL, conn
vTemp = rsFutures("Start /Index")
If Not IsNull(vTemp) Then cells(1,1) = vTemp
我有一个问题,文件中的值3S6S,记录集有36 ??? !!!! 这是怎么回事?
所有的想法非常感谢。 谢谢。
答
任何未来可能会遇到类似问题的人,我的解决方案是创建Schema.ini文件,该文件立即处理记录集列类型。这里是小样本:
[myfile.csv]
Format=CSVDelimited
ColNameHeader=True
Col1=TR Char Width 255
Col2=Book Char Width 255
...
ColN=Comment Char Width 255
CharacterSet=ANSI
只是将其保存在导出(或保存)csv文件的相同文件夹中。 祝你好运。
p.s.谢谢布拉德
在文件中的哪些行号发生?第0 - 20行的行对于文件中的那一列看起来如何? – Brad 2013-03-12 00:08:29
该字段的前20条记录是空的,所以它从第23行开始。有关系吗? – ilyaw77 2013-03-12 01:47:13
除非您指定列的数据类型,否则会根据第一行〜第20行进行猜测。当它应该是字符串并丢弃所有非数字字符时,它可能猜到了一个整数。当出现错误并查看该列上的数据类型时,进入记录集。也许,尝试在第一行放置一个空字符串,''“''或一些字母。 – Brad 2013-03-12 02:09:26