【问题标题】:Dynamic Excel WorkSheets based on data tables using SSIS基于使用 SSIS 的数据表的动态 Excel 工作表
【发布时间】:2014-08-21 20:29:41
【问题描述】:

尝试使用 SSIS 基于数据表创建动态 Excel 工作表。

每个 Excel 工作表将代表一个州,而州工作表将有不同的行和列。

例如: AL - 阿拉巴马州工作表

A/C No Col1 Col2 Col3 ..... Col 39(有39列)

1000 123 ABC 39j........49sd
2000 123 ABC 39j........49sd

FL - 佛罗里达工作表

A/C No Col1 Col2 Col3 ..... Col 39

1000 123 ABC 39j........49sd
2000 123 ABC 39j........49sd

涉及 540K 行,因此每个工作表将有大约 54K 记录。

让我知道什么是最好的方法

【问题讨论】:

  • 您说会有不同的行和列,但您的 AL 和 FL 工作表都有 39 列。这是巧合,还是您的输出表总是有 39 列?
  • 我的错,将有 39 列和 54 个状态。每个州都有自己的工作表,所以总共有 54 个工作表。是的,输出表总是有 39 列。是否有可能对此做一些动态的事情..
  • 所有 54 个州的源数据是否都在同一个地方?换句话说,可变部分是否只是要拉取什么状态以及调用输出文件的内容?
  • 一个表包含所有需要的数据,并且“状态”是该表中的列之一,因此请回答您的问题“是”和“是”。我可以为每个工作表或每个状态创建 54 个不同的控制流。这是最好的方法还是更好的方法

标签: sql-server-2008 ssis msbi


【解决方案1】:

对我来说,这听起来像是一个参数化的 SSIS 包。您可以通过创建 变量 来保存将要更改的数据流部分(要搜索的状态、目标文件的名称和路径)并在 Excel 和 ADO 上设置这些属性.NET 连接管理器使用表达式。在运行时,您将更改变量的值并运行包。

现在,这是一个非常高级的摘要。对于此设置而言,逐步完成它是一项太大的任务,但here's 有一篇文章介绍了如何反向执行(平面文件到 SQL)。不过,基本概念是相同的,尤其是本文展示了如何在包中设置表达式和变量。

【讨论】:

    【解决方案2】:

    在 SSIS 中做任何事情的最佳方式是脚本任务。

    在脚本任务中为 excel 使用 Interop 服务并在转储数据之前创建工作簿。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2019-02-14
      • 1970-01-01
      • 2014-11-18
      相关资源
      最近更新 更多