2017-02-27 50 views
3

我有一個腳本任務,它打開一個excel文件並將其保存爲.csv,但它保存打開文件的工作表,而我想選擇要保存的工作表。 CSV,這是我目前使用的腳本:激活SSIS腳本中的特定Excel工作表任務

Public Sub Main() 

    Dim oMissing As Object = System.Reflection.Missing.Value 
    Dim xl As New Microsoft.Office.Interop.Excel.ApplicationClass() 
    Dim xlBook As Microsoft.Office.Interop.Excel.Workbook 
    Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet 
    Dim laPath As String = "C:\Filename.xlsx" 
    xlBook = DirectCast(xl.Workbooks.Open(laPath, oMissing, oMissing, oMissing, oMissing, oMissing, 
    oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, 
    oMissing, oMissing, oMissing), Workbook) 

    xl.DisplayAlerts = False 
    xlSheet = DirectCast(xlBook.Worksheets.Item(1), Worksheet) 
    xlBook.SaveAs("C:\Filename.csv", 6, oMissing, oMissing, oMissing, oMissing,, oMissing, oMissing, oMissing, oMissing, oMissing) 
    xl.Application.Workbooks.Close() 
    Dts.TaskResult = ScriptResults.Success 
End Sub 

我想我必須使用xlbook.Worksheets("Sheet1").Activate,但我似乎無法找到它。

回答

1

你必須通過它的名稱即可打開工作表,並使用Select()功能來選擇它:

xlSheet = xlBook.Worksheets("Sheet1") 
xlSheet.Select() 

您的代碼將是這樣的:

Public Sub Main() 

    Dim oMissing As Object = System.Reflection.Missing.Value 
    Dim xl As New Microsoft.Office.Interop.Excel.ApplicationClass() 
    Dim xlBook As Microsoft.Office.Interop.Excel.Workbook 
    Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet 
    Dim laPath As String = "C:\Filename.xlsx" 
    xlBook = xl.Workbooks.Open(laPath) 
    xl.DisplayAlerts = False 
    xlSheet = xlBook.Worksheets("Sheet1") 
    xlSheet.Select() 
    xlBook.SaveAs("C:\Filename.csv", Excel.XlFileFormat.xlCSV,Excel.XlSaveAsAccessMode.xlNoChange) 
    xl.Application.Workbooks.Close() 
    Dts.TaskResult = ScriptResults.Success 
End Sub 
+0

謝謝,select()的工作,雖然我不得不使用它以我的格式,你的一個給了我一個運行時錯誤.'xlSheet = DirectCast(xlBook.Worksheets(「Sheet1」),工作表) xlSheet.Select()' – JamesBracky