3

我正在将数千行(120K)的数据从 excel 文件导入 SQL Server。现在我正在尝试使用 SSIS 来完成此操作,但考虑到构建 excel 文件的 excel 模板似乎仅在第一行中不包含标题(大约前 6 行包含标题信息),我立即遇到了一些问题. 如何使用 BIDS 中的 SSIS 数据流任务处理导入来解决此问题?或者通过直接读取 Excel 文档中的每一行来读取行会更好吗?

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

a)我正在尝试找到一种替代方法来从 Windows 客户端应用程序中读取每个 excel 行,然后将数据逐行写入数据库

b) 我的 excel 文档中有大约 4 个 excel 工作表

c)如果有一种方法可以从 excel 中逐行读取并有效地完成,而不是使用我不太熟悉的 Windows 客户端中的 SSIS。我将不胜感激有关如何的任何建议

d) 我的 excel 文档的特定标题位于第 7 行,我已将其最小化,因为该信息仅用于我的后端需求。

4

2 回答 2

3

您可以将OpenRowsetExcel 数据源(属性窗口,自定义属性部分中的 OpenRowset)的属性设置为类似于 的值Sheet1$a6:j,其中a包含数据的第一列,包含数据j的最后一列,6通常是数据之前带有标题的行。数据应该从下一行开始。您还可以通过设置类似于 的值来设置要读取的最后一行Sheet1$a6:j20
请注意,第一个给定行有时被视为标题行,有时被视为包含数据的第一行。例如使用excel:
excel数据
当我设置OpenRowsetSheet1$a3:j第三行时被视为标题行:
数据预览 1
但是当我设置OpenRowsetSheet1$a3:j8这一行时被视为第一行数据:
数据预览 2
奇怪。

于 2012-09-13T23:49:58.683 回答
0

尝试这个 ,

除了使用 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 

谢谢,

文卡特。

于 2012-09-14T05:59:41.483 回答