[問題] 如何有效率讀大量CSV資料進DataGridView

看板C_Sharp (C#)作者 (Gama)時間10年前 (2015/03/03 23:08), 編輯推噓2(2010)
留言12則, 5人參與, 最新討論串1/1
現在手上有約莫300個CSV檔案,每個檔案內有 18000 Rows and 27 Columns 目前初步的想法是... 1. 將每個檔案的資料讀入,並放入一個DataGridView內顯示 2. 將讀入的資料拿來做處裡及分析 目前處理方式如下: a. 用一個 foreach 迴圈列舉出資料夾內的所有csv檔案 b. 用一個while讀檔案內所有資料(一次讀取一整行) c. 將(b)讀入的資料以 String.split 方法切開 d. 將切開後的資料儲存起來 and 顯示在DataGridView內 上述的方法實作起來相當的耗時... 請問版上的各位高手們有什麼建議可以提升處理此情況的效率嗎? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.53.34 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1425395305.A.E83.html

03/03 23:30, , 1F
LumenWorks.Framework.IO
03/03 23:30, 1F

03/03 23:30, , 2F
或 Microsoft.VisualBasic.FileIO.TextFieldParser
03/03 23:30, 2F

03/03 23:55, , 3F
code project就有不少可以參考
03/03 23:55, 3F

03/03 23:55, , 4F
找fast csv reader
03/03 23:55, 4F

03/04 00:28, , 5F
顯示很花時間,用DataSet較佳
03/04 00:28, 5F

03/04 00:30, , 6F
是說code project的那個reader並不會特別快,但他考慮的
03/04 00:30, 6F

03/04 00:30, , 7F
CSV結構比較完整,單純用Split會有一些問題
03/04 00:30, 7F

03/04 00:34, , 8F
然後顯示的行為你要考慮,是否用部分檢視就好。
03/04 00:34, 8F

03/04 00:40, , 9F
以我的經驗而言,最慢的部分會在顯示在DataGridView,其次
03/04 00:40, 9F

03/04 00:41, , 10F
是Decode,再來是Split。儲存我不知道你怎麼存就先不考慮
03/04 00:41, 10F

03/04 01:26, , 11F
忽然想到補充:如果你是FAT32又放很多檔案的話,列舉也很慢
03/04 01:26, 11F

03/04 08:48, , 12F
你資料是死的話就寫進DB存起來呀
03/04 08:48, 12F
文章代碼(AID): #1KzSvfw3 (C_Sharp)
文章代碼(AID): #1KzSvfw3 (C_Sharp)