2015-03-03 85 views
0

我有一个创建和填充Excel表的SSIS包,它从一个模板文件创建表。SSIS脚本任务从Excel中删除行

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

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

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

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

但是我需要指定文件中的字符串,并得到该文件打开和关闭,以及...

回答

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参考,但它完美地工作。

1
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 

我希望这就是你要找的人。