SSIS:读取 Excel 文件太行
SSIS : Read Excel File too lines
我从事 SSIS 项目(Visual studio 2012)
浏览器向我发送了一个包含文章的 excel 文件。
信息从 A2 开始,直到 G 列。
然后我用
SELECT * FROM [ProduitsFamilles$A2:G]
我的问题是,我在这个文件中看到最后一行是 16143(在空单元格下)
当我 运行 它时,它给出 16382 行...然后 200 行空 crush 导入数据库,因为主键不能为空。
我认为这是因为在发送此文件之前,浏览器删除了旧的 unless 行。
使用 "conditional Split" 给出了很好的回应,但我想知道我是否可以直接打破空行,比如使用 where 子句...
如果您选择 table 而不是 sql 语句,SSIS 将处理 excel 个文件并自动停在空行处。我相信您也可以在 sql 语句的 Select 子句中 select 特定列,而不是在 From 子句中定义您的范围。 SSIS 通常假定有一个 header 行,但您也可以指定它。
还有一个可能的问题,即 Excel 中的单元格可以是活动的和空的,而不是非活动的。要对此进行测试,请按 ctrl 和 sheet 中完整列顶部的向下箭头。它应该停在最后一个包含数据的单元格(在你的例子中是第 16143 行);如果它改为下降到第 16382 行,你就会知道你有一堆空的但活动的行需要在导入之前处理。
一般来说,与 Excel 文件相比,将 .csv 文件与 SSIS 一起使用要容易得多,后者往往存在这些类型的格式问题。
我从事 SSIS 项目(Visual studio 2012)
浏览器向我发送了一个包含文章的 excel 文件。
信息从 A2 开始,直到 G 列。
然后我用
SELECT * FROM [ProduitsFamilles$A2:G]
我的问题是,我在这个文件中看到最后一行是 16143(在空单元格下)
当我 运行 它时,它给出 16382 行...然后 200 行空 crush 导入数据库,因为主键不能为空。
我认为这是因为在发送此文件之前,浏览器删除了旧的 unless 行。
使用 "conditional Split" 给出了很好的回应,但我想知道我是否可以直接打破空行,比如使用 where 子句...
如果您选择 table 而不是 sql 语句,SSIS 将处理 excel 个文件并自动停在空行处。我相信您也可以在 sql 语句的 Select 子句中 select 特定列,而不是在 From 子句中定义您的范围。 SSIS 通常假定有一个 header 行,但您也可以指定它。
还有一个可能的问题,即 Excel 中的单元格可以是活动的和空的,而不是非活动的。要对此进行测试,请按 ctrl 和 sheet 中完整列顶部的向下箭头。它应该停在最后一个包含数据的单元格(在你的例子中是第 16143 行);如果它改为下降到第 16382 行,你就会知道你有一堆空的但活动的行需要在导入之前处理。
一般来说,与 Excel 文件相比,将 .csv 文件与 SSIS 一起使用要容易得多,后者往往存在这些类型的格式问题。