0
我正在編寫一個應用程序來處理並將csv
文件上傳到遠程服務器。 應用程序需要相當靈活,允許自定義列映射。從CSV文件導入,如何跳過第一個X行
的第一大障礙我來是讀取文件,許多文件有數據開始行5+在頂部的一些垃圾數據,下面的例子:
Account: 123
----------
Date: 15/12/2011
----------
Type: Full
----------
Column1,Column2,Column3,Column4
Data1,Data2,Data3,Data4
Data1,Data2,Data3,Data4
理想我想要一種方法來獲取第一行數據,但這可能會很棘手。
我使用Jet與連接字符串連接到文件:
If (_extension = ".csv") Then
_excelconn.ConnectionString = String.Format(_
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}" & _
"; Extended Properties=""text;HDR=No;FMT=Delimited""", _directory)
End If
然後通過代碼獲取數據:
If ValidateAll() Then
Try
ConnectExcel() ' Opens connection to csv/excel file
_excelcommand.CommandText = "SELECT * FROM [" & _excelsheets(_selsheet) & "]" ' Currently selected sheet, returns SELECT * FROM [1234#csv]
_excelcommand.Connection = _excelconn
_reader = _excelcommand.ExecuteReader()
While _reader.Read()
'MsgBox(_reader(0).ToString)
'Dostuff
End While
Catch ex As Exception
_errors.Add(ex.ToString)
retval = -1
End Try
End If
這與異常跌倒,我可以」對於第一行,請訪問reader(2)
。
連接字符串或SELECT
語句中是否有任何方法來告訴Jet跳過工作表的前X行? 如果沒有辦法處理reader.Read()
如果行號高於X?
我知道它可能與讀取整個文件到一個數組並從那裏解析或通過將文件內容複製到一個新的csv文件,但如果有辦法避免這種情況,並通過jet/ado做到這一點,然後我'多喜歡這個!
(標記sql
因爲有可能是在ADO查詢中sql
溶液)
有在搜索中有幾個例子可能是有趣的:http://stackoverflow.com/search?q=skip+first+rows+read – Fionnuala 2012-08-03 19:32:01