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

标签 sql-server excel ssis etl script-task

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

最佳答案

您可以使用 Microsoft.Interop.Excel图书馆和使用NumberFormat属性更改EntireColumn格式为日期时间。

注意:您必须添加 Microsoft.Office.Interop.Excel.dll文件到以下目录(.Net Framework dll 目录)C:\Windows\Microsoft.NET\Framework\v2.0.50727和(sql server 数据工具 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

引用文献
  • Format an Excel column (or cell) as Text in C#?查看所有答案,而不仅仅是接受的答案
  • Interop.Excel - Set date format
  • Range.NumberFormat Property
  • 关于sql-server - 在 ssis 脚本任务中格式化 excel 目标列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48093071/

    相关文章:

    sql-server - SQL Server 数据库 : INSERT query blocked with wait type LCK_M_IX

    sql - 工作 SQL Server 2005 查询优化

    asp.net - SQL LIKE % 对于整数

    python - 在没有任何客户 ID 的情况下汇总客户支出

    vba - Excel 2007 VBA - 使用 Sheets.Add 在工作簿末尾创建图表

    excel - 从 Excel 将工作表另存为 CSV

    SQL 服务器 : get size of longest value in column and include column name in that total

    sql - Project.params 中的 ODBC 连接SSIS

    sql-server - ssis 派生列 - 检查日期字段是否为空

    ssis - 如何从 SSDT 了解我使用的 SSIS 版本