我正在尝试合并一些文件。大约40,000个excel文件都具有完全相同的格式(列等)。
我曾尝试通过CMD运行合并命令,它已将它们合并到一个点,但它已合并的CSV文件由于其大小而无法打开。
我想要找出的是合并如此大量文件然后将它们加载到SQL服务器的过程的最佳过程。
是否有任何可能需要定制和构建的工具或东西?
答案 0 :(得分:0)
我不知道这方面的工具,但我的第一个想法就是这个,假设您对Transact SQL有经验:
dir *.xlsx /b > source.txt
这将创建一个名为“source.txt”的文本文件,其中包含所有Excel文件的名称(以及仅名称)
在SQL Server表中导入此文件,即称为“sourcefiles”
创建一个包含游标的新存储过程。游标应逐行读取循环中的表“sourcefiles”,并将实际重写的Excel文件的名称存储在变量中,即称为“@FileName”
在这个循环中为每个重读的Excel文件执行这样的sql语句:
SELECT * INTO dbo.YourDatabaseTable
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0 Xml;HDR=YES;Database=@FileName',
'SELECT * FROM [YourWorkSheet$]')
让光标读取下一行
根据您的需要替换“YourDataseTable”和“YourWorkSheet”。
@FileName
必须包含Excel文件的完整路径。
也许你必须在执行sql命令之前下载Microsoft.ACE.OLEDB.12.0-Provider。
希望,这有助于考虑您的进一步步骤
迈克尔
编辑:在this网站上查看可能的错误