sql-server - 在SSIS脚本任务中激活特定的Excel工作表

标签 sql-server excel csv ssis script-task

我有一个脚本任务,它打开一个 Excel 文件并将其另存为 .csv,但它保存随该文件打开的工作表,而我想选择将哪个工作表另存为 .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() 函数选择它:

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 

关于sql-server - 在SSIS脚本任务中激活特定的Excel工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42493550/

相关文章:

sql-server - SQL Server - ASCII 值上的 CHARINDEX

c# - 允许 "good"编程的 Excel Interop 包装器

java - Apache POI 自动调整百分比格式单元格的大小

r - 在 Shiny 中向 Leaflet 弹出窗口添加超链接的方法

java - 使用 BufferedReader 读取 Java 中的一行

php - 在 PHP PDO-ODBC、unixODBC 和 FreeTDS 中使用类型化绑定(bind)参数

SQL UPDATE 字符串中的特定字符

sql-server - 在 PERL 中从 Windows 访问 Microsoft SQL Server

regex - 像运算符一样变长

csv - 将 mathematica csv 导出中的数字转换为 numpy 复杂数组