SSIS的Excel到SQL导入 - 前6行的文件中包含头的相关信息(SSIS Excel to S

2019-06-28 09:05发布

我正在从一个Excel文件到SQL Server导入成千上万行数据(120K)的。 现在我想使用SSIS做到这一点,但我很快就遇到了一些问题,考虑到Excel文件是建立与Excel模板似乎并不仅仅包含在第一行的头(大约第6行包含标题信息) 。 如何解决使用SSIS数据流任务中BIDS办理进口这个问题? 或者会是更好的阅读通过来自Excel文档的每一行的直接读取线?

我认为会有帮助这里是其他信息

一)我试图找到阅读的每个从Windows客户端应用程序擅长行,然后将数据写入由线数据库线替代

B)我有大约4 Excel工作表我的Excel文档中

C)如果有一种方法来读取从Excel行线,并将它高效地完成,而不是从Windows客户端,我不那么熟悉使用SSIS。 我欢迎任何建议如何

d)我的excel文件的特定头位于第7行,和我有它最小化正弦的信息仅是对于我的后端的需要。

Answer 1:

您可以设置OpenRowset Excel数据源(属性窗口,OPENROWSET在自定义属性部分)的属性类似的值Sheet1$a6:j ,其中a是与数据第一列, j与数据最后一列和6通常与行只是之前的数据头。 数据应在下一行开始。 您还可以设置最后一排设置类似的值来读取Sheet1$a6:j20
注意,第一次给定行有时视为标题行和有时第一行与数据。 例如使用Excel:

当我设置OpenRowsetSheet1$a3:j第三行被视为标题行:

但是当我设置OpenRowsetSheet1$a3:j8此行的第一个数据行处理:

奇怪。



Answer 2:

试试这个 ,

除了使用SSIS昱欧可以在SQL Server使用OPENROWSET功能,下面的查询一步执行步骤,因为我们需要设置所有必需的选项是在SQL Server中正确使用OPENROWSET功能之前,

--execute step by step to process excel data into sqlserver using OPENROWSET/OPENDATASOURCE
sp_configure
sp_configure 'show advanced options',1
reconfigure
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
SELECT * INTO XLImport8 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\StatusReport.xls', 'SELECT * FROM [Sheet1$]')
select * from XLImport8 

谢谢,

Venkat。



文章来源: SSIS Excel to SQL import — First 6 rows of the file contains header-related information