以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]如何批量导入csv文件 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=64501) |
-- 作者:青岛hhh -- 发布时间:2015/2/16 11:21:00 -- [求助]如何批量导入csv文件 要求:第一列“日期”导入文件夹名,第二列“代码”导入文件名,第三到第六列导入文件内容 请各位老师帮助
[此贴子已经被作者于2015/3/5 8:38:53编辑过]
|
-- 作者:有点甜 -- 发布时间:2015/2/23 11:07:00 -- 参考例子
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=62227&skin=0 |
-- 作者:青岛hhh -- 发布时间:2015/2/25 11:10:00 -- 感谢有点甜老师的指导,我先试着导入单个的CSV文件,约14秒,每天约2000个文件,导入时间约7个小时,显然是不可行的,重新学习帮助文件,使用外部数据连接,按例设置外部数据源,提示:不可识别的数据库格式‘E:\\SH600004.CSV’。希望各位老师指导该怎么做。 |
-- 作者:有点甜 -- 发布时间:2015/2/25 11:20:00 -- 导入单个
Dim str As String = FileSys.ReadAllText("C:\\Documents and Settings\\Administrator\\My Documents\\下载\\2016\\2016\\SH600004.csv", Encoding.Default) |
-- 作者:有点甜 -- 发布时间:2015/2/25 11:28:00 -- 批量就这样做,但这么大的数据量,不建议直接导入foxtable,最好是通过sql语句,直接导入数据库。
DataTables("表A").ResumeRedraw |
-- 作者:青岛hhh -- 发布时间:2015/2/25 14:20:00 -- 感谢有点甜老师给我的帮助,我的想法是不导入数据了,只做一个外部数据源,在外部数据表上做统计,每个外部数据表的统计数据在内部表中生成一行数据(一个记录),这样逐表循环一遍,只把需要的统计数据保存在内部表中,外部数据源(2016文件夹)每日更换不做保存,这样减少数据保存量,减少统计时间,想法不知是否可行? 试了一下外部数据连接,提示:不可识别的数据库格式‘E:\\SH600004.CSV’。希望有点甜老师指导。 |
-- 作者:有点甜 -- 发布时间:2015/2/25 14:23:00 -- 回复6楼,直接读取CSV文件的文本,循环每一行,统计结果,只有这个办法 |
-- 作者:青岛hhh -- 发布时间:2015/2/25 15:21:00 -- 怎样直接读取CSV文件的文本,约2000个CSV文件需要循环。 |
-- 作者:Bin -- 发布时间:2015/2/25 15:28:00 -- 5楼就是啊.你没看? |
-- 作者:青岛hhh -- 发布时间:2015/2/26 15:15:00 -- 各位老师好! 前面我没说清楚,5楼代码我用了,可以批量导入CSV文件,因数据量太大导入约50个文件就提示:引发类型为“System.OutOfMemoryException”的异常。我想每导入一个表做一次统计(在统1或统2表增加一条记录),导入的CSV后表覆盖前表。 两个统计表:统1,统2。结构一样:列1(输入日期),列2(导入的CSV文件名称,名称前2位是“SH”增加到“统1”表,名称前2位是“SZ”增加到“统2”表),列3(CSV表B列最高值),列4(CSV表B列最低值),列5(CSV表D 列合计值)。 我不熟悉代码,请各位老师帮我做一下,先表示感谢了 [此贴子已经被作者于2015/2/26 16:26:31编辑过]
|