我想合并一些文件。大约40,000个excel文件的格式完全相同(列等)。合并Excel文件的数量并加载到SQL数据库
我试图通过CMD运行一个合并命令,它已将它们合并到一个点上,但合并到的CSV文件由于其大小而无法打开。
我想知道的是什么是最好的过程来合并如此大量的文件,然后将它们加载到SQL服务器的过程。
是否有任何工具或可能需要定制和构建的东西?
我想合并一些文件。大约40,000个excel文件的格式完全相同(列等)。合并Excel文件的数量并加载到SQL数据库
我试图通过CMD运行一个合并命令,它已将它们合并到一个点上,但合并到的CSV文件由于其大小而无法打开。
我想知道的是什么是最好的过程来合并如此大量的文件,然后将它们加载到SQL服务器的过程。
是否有任何工具或可能需要定制和构建的东西?
我不知道应该是一个工具,但我的第一个想法是这样的,以为你是有经验的事务SQL:
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网站看看