2014-04-30 63 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网站看看