繁体   English   中英

将多个 Excel 文件导入 SQL Server

[英]Import Multiple Excel files to SQL Server

我有大约 40 多个 excel 文件想要导入到 SQL Server 2012。导入向导是一个很棒的工具,但它一次只允许我导入一个文件。

我想避免使用 SSIS,因为导入应该相对容易 - 基本上它只是直接复制粘贴,Excel 文件中的第一行是列名,Excel 文件名 = 表名。

有什么简单的方法可以实现这一目标吗?

编辑:由于列会经常更改,我想避免手动创建表。 该向导很棒,因为它会自动为我创建表。

我使用的一种解决方案是将多个 Excel 文件合并为一个包含多个工作表的文件。 这可以通过运行 VBA 脚本(例如如何将 Excel 文件与 VBA 合并 - 感谢 Svetlana Cheusheva )然后使用 SSMS 导入向导将多个工作表加载到多个表中来完成。 就我而言,我有 160 个文件,但它们不是很大——100 到 10000 行——而且它对我来说效果很好。

您可以使用 OpenRowSet 来完成。 可以在查询的 FROM 子句中引用 OPENROWSET 函数,就像它是表名一样。

使用以下 SELECT 语句和 OPENROWSET 函数读取 excel

SELECT * 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=C:\Source\Addresses.xls;IMEX=1',
                'SELECT * FROM [Sheet1$]')

要在不使用 DTS 的情况下将其导入 SQL Server 表,因为您可以使用 SELECT 语句读取数据,您只需添加 INTO 子句即可将记录插入到新的 SQL Server 表中。

SELECT * 
INTO [dbo].[Addresses_NewTable]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=C:\Source\Addresses.xls;IMEX=1',
                'SELECT * FROM [Sheet1$]')

参考文章:- http://www.sql-server-helper.com/tips/read-import-excel-file-p03.aspx

这可能比您想对您的问题进行更多的研究,但您也可能会考虑使用 BIML 来编写繁琐且众多类似的程序包。

http://www.sqlservercentral.com/stairway/100550/ http://www.mssqltips.com/sqlservertip/3094/introduction-to-business-intelligence-markup-language-biml-for-ssis/

使用 Kutools for Excel 将跨工作簿的工作表合并到新工作簿中的一个工作表中,然后加载它。

https://www.extendoffice.com/product/kutools-for-excel/merge-excel-wordbooks.html#a4

这就是我正在做的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM