【问题标题】:SSIS Script Task Delete Row from excel SheetSSIS脚本任务从excel表中删除行
【发布时间】:2015-05-03 23:35:48
【问题描述】:

我有一个 SSIS 包,它创建和填充 Excel 工作表,它从模板文件创建工作表。

我遇到的一个问题是 excel 会改变行的格式。我做了一个插入标题行并将其隐藏的工作。

但是,我现在需要在 SSIS 中编写一个 VB 任务脚本,以打开 Excel 工作表并删除该特定行。

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

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

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

【问题讨论】:

    标签: excel vba ssis


    【解决方案1】:

    在这里与程序员讨论后,我设法获得了一些脚本来完全满足我的需要。为需要在 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 参考,但这很有效。

    【讨论】:

      【解决方案2】:
      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
      

      我希望这就是你想要的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        • 2020-12-15
        • 1970-01-01
        • 2019-05-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多