在 SSIS 脚本任务中激活特定的 Excel sheet
Activate specific Excel sheet in SSIS Script Task
我有一个脚本任务,它打开一个 excel 文件并将其保存为 .csv,但它保存了随文件一起打开的 sheet,而我想选择哪个 sheet 保存为.csv,这是我目前使用的脚本:
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
但我似乎找不到它。
您必须按名称打开工作表,然后 Select 使用 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
我有一个脚本任务,它打开一个 excel 文件并将其保存为 .csv,但它保存了随文件一起打开的 sheet,而我想选择哪个 sheet 保存为.csv,这是我目前使用的脚本:
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
但我似乎找不到它。
您必须按名称打开工作表,然后 Select 使用 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