2009-09-04 130 views
1

我必须导入一系列CSV文件并将记录放入Access数据库。这本身并不是一个太大的问题。CSV导入(可变字段)

并发症来自于每个CSV文件的格式是可变的,因为字段的数量可能会有所不同。

想想这个的最好方法是有80个主字段,每个CSV文件可能包含这80个字段的任意子集。告诉你要处理的唯一方法是查看CSV文件中的字段标题。写入Access文件的数据必须包含全部80个字段(因此缺少的字段需要写为空值)。

而不是重新发明轮子,有没有人知道处理这个变量映射/导入的任何代码?

或者正确方向的任何指针将不胜感激。

回答

4

.NET的最佳CSV阅读器库是LumenWorks'。它不会将数据插入到Access中,并且我认为您仍然需要编写一些代码来处理列差异,但它比使用自己的解析器更容易,而且速度更快。

+0

就像一个魅力保存以供将来参考映射!感谢您指出LumenWorks,Vinko! – 2012-05-08 10:37:16

0

一般来说,重复数据传输的基本自动化CSV导入应该期望一致的输入文件符合商定的规范。

如果用户将CSV文件导入到应用程序中,则可以通过列出CSV文件中的字段(例如,读取第一行中的值) 并将其下拉字段旁边带有master(db)字段的列表。

你可以通过保存输入字段指数或名称的列表与相应的主字段索引/ ID /名称)

+0

我无法控制CSV文件的规范,因此必须接受它们。 没有直接的用户输入 - 程序会扫描CSV文件并自动处理它们,因此程序需要通过检查各个标题然后将它们映射到输出记录来构建数据库记录。 – phrenetic 2009-09-04 18:50:15

+0

如果没有用户输入,那么至少字段/列标题需要一致。在这种情况下,您只需在知道ColumnHeader = DBFieldName链接的DB中创建一个列映射,然后为每个文件即时自动生成输入映射。 – 2009-09-05 07:46:19

+0

Mark - 谢谢。我得出了同样的结论,现在已经成功实施。 – phrenetic 2009-09-07 13:57:26