将多个Excel文件/表导入SQL表

时间:2014-04-17 11:18:18

标签: sql sql-server excel excel-vba ms-office vba

我有大约100个xlsx文件,每个文件都有1-7张。每个文件和工作表与我要将所有内容导入的表具有相同的列。

我可以成功使用它:

SELECT *
FROM OPENROWSET(
  'Microsoft.ACE.OLEDB.12.0',
  'Excel 12.0;Database=C:\0.xlsx',
  'SELECT * FROM [sheet1$]'
)

SELECT * FROM OPENDATASOURCE( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="C:\0.xlsx";
Extended properties=Excel 8.0')...Sheet1$

但是如何从文件导入多张纸?

1 个答案:

答案 0 :(得分:1)

  1. 为Excel文件创建链接服务器
  2. 使用sp_tables_ex来发现提供程序返回的表(大多数应该是工作表名称,但可能取决于提供程序实现)
  3. 链接服务器

    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'
    
相关问题