基于参数dynamic创buildexcel文件

其任务是:基于SQL查询返回的数据,为每个客户单独生成自动定期报告,并将其另存为一个单独的名为customer_name + [YY-MM] .xlsx的 excel文件(或者为每个客户分配一个带有单独工作表的时间戳excel文件)。

客户ID可能会每个月有所不同,目标客户列表是由SQL查询生成的。

什么是最好的技术? 到目前为止研究:
SSIS: Excel文件或标签的名称应在控制stream和数据stream任务中预定义,不能dynamic设置。 输出是非格式化的CSV(不好,但可以应付它)。
Excel:我可以将所有客户的批量数据embedded到excel中,但不能确定是否可以编写一个macros来获取唯一的客户,创build相应的选项卡并在每个客户端中放入相应的数据。
SSRS:订阅function在企业级被禁用 – 不能使用它:(即使不知道它接受像这样的dynamic参数。

我错过任何select吗? 或者也许有其他技术可用?

由于以下原因,SSIS将成为您最佳的select:

  1. 如果模式数量有限,则可以设置一组excel模板,然后使用SSIS轻松填充和重命名模板。
  2. 如果您需要更好的控制,您可以使用Interop和C#在Excel中执行任何您想要的操作,但执行起来非常慢,而且耗时很长。
  3. 在数据集(客户列表)上build立一个执行循环很容易,并且包括他们需要哪些模板或标签作为数据集的一部分,这使得维护和添加新客户变得更简单,并且可能移动到业务侧。

当然,SSIS也有一些缺点,比如在使用excel连接器时很难获得excel列格式的配合,但这仍然是最好的select。