通过在SSIS中运行excel VBA宏来自动执行流程

TDa*_*Dai 3 sql excel vba ssis etl

最近,我有一个项目需要通过将SSIS包和excel VBA宏组合成一个来自动化流程.以下是步骤:

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

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

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

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

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

Rob*_*son 5

执行此操作的方法是在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")
Run Code Online (Sandbox Code Playgroud)

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