【问题标题】:SSIS - How do I read an Excel file STARTING from a specific row?SSIS - 如何从特定行开始读取 Excel 文件?
【发布时间】:2019-09-13 17:31:33
【问题描述】:

我收到的 Excel 文件非常“不规则”……前几行只是描述和随机信息。

我想从第 17 行开始读取文件,并且只读取可见行。

第 17 行是列的标题(类似于普通表格)。

这样的事情有可能吗?

【问题讨论】:

    标签: excel ssis


    【解决方案1】:

    在 excel 连接中,您可以设置openRowset,从您的工作表中选择单元格,如 Excel, 示例:openRowset: Sheet1$A17:f30

    【讨论】:

      【解决方案2】:

      选中此link 将脚本计数器添加到您的包中,然后您可以为MyCounter > 17 执行条件拆分任务,如果您在导入后立即执行此操作,它应该包含正确的行。

      我不确定你所说的可见行是什么意思。如果您得到完全为 Null 的行,那么您始终可以将其添加到条件中。

      【讨论】:

        【解决方案3】:

        excel文件可以像sql语句一样查询。在您的数据流任务中,将 excel 源设置为 excel,然后将数据访问模式设置为 sql 命令。在excel上写查询。

        例子

        假设您的工作表名称为 Sheet1,列 ID、名称、部门和您的数据从 17 开始,这样编写查询

        从 [Sheet1$A17:C65536] 中选择 [ID]、[姓名]、[部门],其中 [ID] 不为空。

        此查询从 excel 的第 17 行选择数据,直到数据存在为止。

        如果您的标题行是 A17,请不要忘记在连接管理器中检查“第一行有列名”。

        【讨论】:

          【解决方案4】:

          我创建了 2 个变量,一个用于文件名,另一个用于工作表名称,并将“for each loop”容器中的值存储到它。

          我制作了一个 Excel 连接管理器,然后从我在变量中创建的变量中获取工作表名称:

          现在我选择了“数据访问模式”作为“来自变量的 SQL 命令”。然后从下拉列表中选择变量名称。 我必须从在变量中创建的 query_2 读取数据,其中我使用工作表名称作为变量 "SELECT * FROM "+"["+REPLACE(@[User::FileName],".XLSX","$ A35:R]")` 选择工作表中可用的数据范围。

          【讨论】:

            【解决方案5】:

            点击here以示例清晰说明

            【讨论】:

              猜你喜欢
              • 2016-12-18
              • 2017-04-11
              • 1970-01-01
              • 1970-01-01
              • 2019-01-14
              • 2017-09-13
              • 2018-09-27
              • 2016-09-16
              相关资源
              最近更新 更多