2015-03-03 30 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 

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