SSIS 脚本任务从 excel Sheet 中删除行

SSIS Script Task Delete Row from excel Sheet

我有一个创建和填充 excel sheet 的 SSIS 程序包,它从模板文件创建 sheet。

我遇到的一个问题是 excel 会更改行的格式。我解决了插入 header 行并将其隐藏的问题。

不过,我现在需要在 SSIS 中编写一个 VB 任务脚本来打开 excel sheet 并删除该特定行。

我在网上看过一些文章,但是找不到任何我可以尝试和复制的代码,而且我的 VB 知识非常有限,我真的很挣扎。 到目前为止,我已经知道如何删除该行了。

Sub DeleteRow1()
Rows(4).Delete
End Sub

但是我需要分配文件字符串并让文件打开和关闭...

Sub deleteRow1()

Dim wkbk As Workbook

'You can also use an input box like this
' Dim wkbkname As Variant
' wkbkname = InputBox("Enter Workbook Name here.")
' Use wkbkname instead of wkbk then

Set wkbk = "Filename"

wkbk.Sheets(1).Rows(4).delete

End Sub

希望这就是您要找的。

在与这里的程序员进行一些讨论后,我设法获得了一些脚本来完全满足我的需要。发布作为任何其他需要在 SSIS 中执行此操作的人的答案。

Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet

xlApp = New Excel.Application
xlApp.Workbooks.Open(Dts.Variables("NewFileName").Value.ToString)
xlSheet = xlApp.Workbooks(1).ActiveSheet


xlSheet.Rows(4).Delete()

xlApp.Workbooks(1).Save()
xlApp.Workbooks(1).Close()
xlSheet = Nothing

'
Dts.TaskResult = ScriptResults.Success

使用 SSIS 中的变量获取文件名。尽管您确实需要添加 Microsoft.Office.Interop.Excel 参考,但此方法非常有效。