在ssis脚本任务中格式化excel目标列

时间:2018-01-04 10:15:32

标签: sql-server excel ssis etl script-task

是否可以在生成之前格式化ssis中excel目标中的列?我在想一个脚本任务?我想在excel电子表格中将列格式化为日期/时间格式

1 个答案:

答案 0 :(得分:1)

您可以使用Microsoft.Interop.Excel库并使用NumberFormat属性将EntireColumn格式更改为日期时间。

注意:您必须将Microsoft.Office.Interop.Excel.dll文件添加到以下目录(.Net Framework dll目录)C:\Windows\Microsoft.NET\Framework\v2.0.50727和(sql server data tools dll目录)C:\Program Files\Microsoft SQL Server\100\DTS\Binn(如果使用vs 2005和sql 2008)然后在脚本任务中添加此dll作为参考

Imports Microsoft.Interop.Excel

Public Sub Main()

        Dim m_XlApp = New Excel.Application
        Dim m_xlWrkbs As Excel.Workbooks = m_XlApp.Workbooks
        Dim m_xlWrkb As Excel.Workbook
        m_xlWrkb = m_xlWrkbs.Open("D:\1.xlsx")

        Dim m_XlWrkSheet As Excel.Worksheet = m_xlWrkb.Worksheets(1)

        m_XlWrkSheet.Columns(1).NumberFormat = "HH:mm:ss"
        'OR
        'ExcelWorksheet.Cells(1,1).EntireColumn.NumberFormat = "HH:mm:ss"

        m_xlWrkb.Save()
        m_xlWrkb.Close(SaveChanges:=True)

        Marshal.ReleaseComObject(m_xlWrkb)
        Marshal.ReleaseComObject(m_xlWrkbs)
        m_XlApp.Quit()
        Marshal.ReleaseComObject(m_XlApp)


        Dts.TaskResult = ScriptResults.Success

End Sub

<强>参考