[问题] 如何有效率读大量CSV资料进DataGridView

楼主: Gamakatsu (Gama)   2015-03-03 23:08:23
现在手上有约莫300个CSV档案,每个档案内有 18000 Rows and 27 Columns
目前初步的想法是...
1. 将每个档案的资料读入,并放入一个DataGridView内显示
2. 将读入的资料拿来做处里及分析
目前处理方式如下:
a. 用一个 foreach 循环列举出资料夹内的所有csv档案
b. 用一个while读档案内所有资料(一次读取一整行)
c. 将(b)读入的资料以 String.split 方法切开
d. 将切开后的资料储存起来 and 显示在DataGridView内
上述的方法实作起来相当的耗时...
请问版上的各位高手们有什么建议可以提升处理此情况的效率吗?
谢谢大家
作者: totte (totte)   2015-03-03 23:30:00
LumenWorks.Framework.IO或 Microsoft.VisualBasic.FileIO.TextFieldParser
作者: soup514   2015-03-03 23:55:00
code project就有不少可以参考找fast csv reader
作者: wvsrugby   2015-03-04 00:28:00
显示很花时间,用DataSet较佳
作者: Litfal (Litfal)   2015-03-04 00:30:00
是说code project的那个reader并不会特别快,但他考虑的CSV结构比较完整,单纯用Split会有一些问题然后显示的行为你要考虑,是否用部分检视就好。以我的经验而言,最慢的部分会在显示在DataGridView,其次是Decode,再来是Split。储存我不知道你怎么存就先不考虑忽然想到补充:如果你是FAT32又放很多档案的话,列举也很慢
作者: GoalBased (Artificail Intelligence)   2015-03-04 08:48:00
你资料是死的话就写进DB存起来呀

Links booklink

Contact Us: admin [ a t ] ucptt.com