1、csv文件各列默认是以英文逗号(,)来分割的。但是在实际中,数据中也会有包含英文逗号,Windows在保存这类的数据时会把含有逗号的数据当做字符串保存,在两端会加上双引号。此时如果简单的用英文逗号做split,读出来的数据完全不是想要的。(在确保数据中不包含特殊字符的情况下可以用split)
2、ADO、OLEDB读取CSV文件
这种可以很快读取数据,也可以避免1中的问题。
但是出现了另外一种情况,ISAM机制会自动判断各列的数据类型(详细参阅https://www.douban.com/note/18510346/)。此时,如果实际数据类型与判断出来的数据类型不匹配的话,系统会用NULL替换,造成数据的丢失。
注:在读取EXCEL文件的时候,可以设 IMEX=1 ,此时会把所有列作为文本读取,但是CSV中该参数没用。
简单示例(OLEDB):
' 读取csv到Datatable
Dim Source_Path As String
Dim File_name As String = File_FullName.Split("\")(UBound(File_FullName.Split("\")))
Source_Path = File_F