我在读取CSV文件和转换为VB.Net中的数据表时遇到问题.
如果CSV文件包含一个完整的“ – ”列,则在导入数据表时它们显示为“0”,整个列的格式为数字格式.
我写的代码是:
Public Function LoadCsvFile(filePath As String) As DataTable Try DTReadCSV = New DataTable Dim connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Microsoft.VisualBasic.Left(filePath,InStrRev(filePath,"\")) & ";Extended Properties=""text;HDR=Yes;FMT=Delimited""") Dim adapter As New OleDb.OleDbDataAdapter("SELECT * FROM [" + Microsoft.VisualBasic.Mid(filePath,"\") + 1) + "]",connection) 'Dim table As New DataTable() adapter.Fill(DTReadCSV) 'now thats its nicely in a datatable IntAmountRows = DTReadCSV.Rows.Count IntAmountColumns = DTReadCSV.Columns.Count 'System.Diagnostics.Debug.Print(DTReadCSV.Rows.Item(1)(1).ToString) Return DTReadCSV Exit Function Catch ex As Exception MsgBox(ex.ToString()) MsgBox(Err.Number & " " & Chr(13) & Err.Description) End Try End Function
除了修改CSV文件之外,还有人可以更聪明地弄清楚如何解决这个问题,将“ – ”作为空白取出,目前这似乎是导入这些CSV文件的唯一漫长的方式.
非常感谢