在ssis中动态加载.xlsx文件
Dynamically load .xlsx files in ssis
我创建了一个 SSIS 来加载 excel 文件。它循环遍历相关文件的指定文件夹,并将每个文件中的数据读入原始数据 table 然后我有 SQL 脚本进行验证并将数据放在相关 tables 等...一切正常。
但我现在需要让 ssis 包处理加载具有 3 种不同文件结构的 excel 文件。即一个文件有 50 列,一个文件有 55 列,一个文件有 60 列。
我试过使用脚本任务加载数据
Insert into <rawdatatable> select * from openrowset('Microsoft.Jet.OLEDB.4.0','excel 8.0; database=D:\SSIS\FileToLoad.xlsx', 'Select * from [Sheet1$]')
但我不断收到以下错误,但添加错误日志记录不会出现任何其他错误
Exception has been thrown by the target of an invocation
我正在使用 SQL Server 2014 和 VS 2013
我不太确定我在这里做什么,任何帮助或指导将不胜感激
谢谢
您必须使用 Microsoft.ACE.OLEDB.12.0
提供商,尝试以下操作:
Insert into <rawdatatable>
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=D:\SSIS\FileToLoad.xlsx;HDR=YES',
'SELECT * FROM [Sheet1$]')
参考资料
我创建了一个 SSIS 来加载 excel 文件。它循环遍历相关文件的指定文件夹,并将每个文件中的数据读入原始数据 table 然后我有 SQL 脚本进行验证并将数据放在相关 tables 等...一切正常。
但我现在需要让 ssis 包处理加载具有 3 种不同文件结构的 excel 文件。即一个文件有 50 列,一个文件有 55 列,一个文件有 60 列。
我试过使用脚本任务加载数据
Insert into <rawdatatable> select * from openrowset('Microsoft.Jet.OLEDB.4.0','excel 8.0; database=D:\SSIS\FileToLoad.xlsx', 'Select * from [Sheet1$]')
但我不断收到以下错误,但添加错误日志记录不会出现任何其他错误
Exception has been thrown by the target of an invocation
我正在使用 SQL Server 2014 和 VS 2013
我不太确定我在这里做什么,任何帮助或指导将不胜感激
谢谢
您必须使用 Microsoft.ACE.OLEDB.12.0
提供商,尝试以下操作:
Insert into <rawdatatable>
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=D:\SSIS\FileToLoad.xlsx;HDR=YES',
'SELECT * FROM [Sheet1$]')
参考资料