OleDb讀取CSV檔案 使用指定的分隔符號

2021-06-26 00:22:25 字數 936 閱讀 8296

今天在用oledb方式讀取乙個csv檔案的時候,發現得到的文字不是通常用逗號隔開的。而是用tab製表符來隔開的。

orderid    ordername

1 1

2 2

3 3

然後去msnd查詢了了下發現有針對tab製表符的指定引數:

tabdelimited    檔案被當做製表符分隔的檔案
然後嘗試了下降fmt設定為tabdelimited,但是結果卻發現並不能得到分隔的結果。貌似被微軟的文件坑了還是自己的了理解可能有偏差。看到fmt還有其他的引數,然後就逐一嘗試了:

fmt=1 ==>失敗

fmt=delimited("+" "+") ==>失敗

然後看到網上有說可以改登錄檔,因為預設值逗號就是設定在登錄檔裡的,這是路徑:

hkey_local_machine\software\microsoft\jet\4.0\engines\text\format
但是沒找到。。。由於系統是win8可能位置不一樣坑爹。。。google也上不了。。。於是改登錄檔的方式沒有得到嘗試。而且改登錄檔也不是推薦的。

在網上serach了半天,終於找到了乙個對我來說比較神奇的solution,利用schema.ini檔案。

在csv檔案所在的目錄建立乙個這樣的檔案,然後寫一下內容:

[order.csv]

format=tabdelimited

colnameheader=true

maxscanrows=0col1=orderid text width 10col2=ordername text width 30

執行程式,得到預期的結果:

C 利用OleDb讀取csv檔

透過oledb的方式讀取csv檔常會遇到型別轉換的問題。以機關oid為例,2.16.886.101.20003會被轉成2.1688。若要解決這問題,就要參考微軟提供的這個設定檔的說明 將schema.ini放置於與csv檔案相同的目錄中。注意 檔名一定要是schema.ini 撰寫schema.in...

讀取 CSV 檔案

csv檔案 即 csv comma separate values 用逗號分隔值,可以用excel開啟檢視 由於是純文字,任何編輯器都快可以開啟檢視.與excel不同的是,在csv檔案中 1.值沒有型別,所有值都是字串 2.不能指定字型顏色等樣式 3.不能指定單元格的寬高,不能合併單元格 4.沒有多...

ruby 使用csv讀取檔案問題

undergraduatestudent.where sno 2012301040047 first.keys.values.join undergraduatestudent.where sno 2012301040047 first.attributes.values.join data.txt...