2014-04-30 61 views
0

我想合併一些文件。大約40,000個excel文件的格式完全相同(列等)。合併Excel文件的數量並加載到SQL數據庫

我試圖通過CMD運行一個合併命令,它已將它們合併到一個點上,但合併到的CSV文件由於其大小而無法打開。

我想知道的是什麼是最好的過程來合併如此大量的文件,然後將它們加載到SQL服務器的過程。

是否有任何工具或可能需要定製和構建的東西?

回答

0

我不知道應該是一個工具,但我的第一個想法是這樣的,以爲你是有經驗的事務SQL:

  • 打開命令窗口,切換到文件夾中的Excel文件存儲在並輸入以下命令:dir *.xlsx /b > source.txt

這將創建一個名爲「的Source.txt」文本文件,它包含了所有您的Excel文件的名稱(唯一名稱)

  • 將該文件導入到SQL Server表中,即名爲「sourcefiles」

  • 創建一個新的存儲過程,其中包含一個遊標。遊標應該在循環中逐行讀取表「sourcefiles」,並將實際緩存的Excel文件的名稱存儲在一個變量中,即名爲「@FileName」

  • 在此循環中執行如下所示的sql語句每readed Excel文件:

    SELECT * INTO dbo.YourDatabaseTable 
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0 Xml;HDR=YES;[email protected]', 
    'SELECT * FROM [YourWorkSheet$]') 
    
  • 讓光標讀取下一行

替換 「YourDataseTable」 和 「YourWorkSheet」 您的需求。

@FileName必須包含Excel文件的完整路徑。

也許你必須在執行sql命令之前下載Microsoft.ACE.OLEDB.12.0-Provider。

希望,這有助於想想你的進一步措施

邁克爾

編輯:有可能出現的錯誤

this網站看看