当运行一个简单的vbs代码来读取csv时。示例CSV:
AB,CD
XYZABDER,TLK431
..
带有以下代码
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
strPathtoTextFile = "C:xyz"
objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strPathtoTextFile & ";" & _
"Extended Properties=""HDR=YES;FMT=Delimited"""
objRecordset.Open "SELECT * FROM myfile.csv", objConnection
Do Until objRecordset.EOF
MsgBox "AB: " & objRecordset.Fields.Item("AB")
MsgBox "CD: " & objRecordset.Fields.Item("CD")
objRecordset.MoveNext
Loop
它还转换";TLK431";至431。只要我把";TLK";至";TLB";或者不管它读作字符串";TLB431";对于";TL";或";TLK";其转换为int 431。
无法理解此自动转换的原因。
目前,我的解决方法是一个模式文件。但我不喜欢它,我想问一个更好的解决方案和转换的原因。
Thx
这可能是编码问题。如果CSV文件包含Unicode字符,请确保CSV和VBS文件均保存为Unicode(UTF-16(,否则,请将两个文件都保存为ANSI。不要使用UTF-8。