我有大约 100 个 xlsx 文件,每个文件都有 1-7 张。每个文件和工作表都具有与我想要将所有内容导入到的表相同的列。
我可以成功地使用它:
SELECT *
FROM OPENROWSET(
'Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\0.xlsx',
'SELECT * FROM [sheet1$]'
)
or
SELECT * FROM OPENDATASOURCE( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="C:\0.xlsx";
Extended properties=Excel 8.0')...Sheet1$
但是如何从一个文件导入多张工作表呢?
- 为 Excel 文件创建链接服务器
- 使用 sp_tables_ex 发现提供程序返回的表(大多数情况下这应该是工作表名称,但它可能取决于提供程序实现)
链接服务器
EXEC sp_addlinkedserver
@server = 'ExcelServer1',
@srvproduct = 'Excel',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@datasrc = 'C:\Test\excel-sql-server.xls',
@provstr = 'Excel 8.0;IMEX=1;HDR=YES;'
EXEC sp_dropserver
@server = N'ExcelServer1',
@droplogins='droplogins'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)