2009-09-04 124 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