【问题标题】:Automate process by running excel VBA macro in SSIS通过在 SSIS 中运行 excel VBA 宏来自动化流程
【发布时间】:2014-09-27 09:44:12
【问题描述】:

最近,我有一个项目需要通过将 SSIS 包和 excel VBA 宏合二为一来自动化流程。步骤如下:

  1. 我有一个 SSIS 包,将所有视图结果从 sql server 导出到多个单独的文件到 excel。所有文件都保存在同一位置。

  2. 我有一个 excel VBA 宏执行清理以删除每个导出的 excel 文件中的所有空工作表。

  3. 我还有一个 excel VBA 宏执行合并任务,将所有 excel 文件合并到主 excel 文件中。此主 excel 文件包含所有结果集,并且每个结果集相应地保存在不同的选项卡上。

由于我手动运行第 2 步和第 3 步,所以我的问题是如何将第 2 步和第 3 步与第 1 步连接起来,以将它们组合为一个自动化流程。

请告诉我实现这一目标的可能性有多大!非常感谢。

【问题讨论】:

    标签: sql excel vba ssis etl


    【解决方案1】:

    执行此操作的方法是在您的 SSIS 包中创建一个脚本任务。

    然后,一旦进入脚本任务,您就可以通过脚本任务的 C# 代码调用 Excel 互操作。例如您可以添加对 Microsoft.Office.Interop 的引用。在脚本任务的 C# 代码中使用该库后,您可以添加一些将调用宏的代码。例如

    oExcel = CreateObject("Excel.Application")
    oExcel.Visible = False
    oBooks = oExcel.Workbooks
    oBook = oBooks.Open(Dts.Variables("filePath").Value.ToString())
    //Your macro here:
    oExcel.Run("Yourmacro")
    

    然后您也可以为其他工作簿编写代码,在此之后您需要的任何自动化 - 例如。您可以根据需要通过 Excel 自动化关闭工作簿并打开另一个工作簿。

    【讨论】:

    • 谢谢罗伯特,这很有帮助!
    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多