【问题标题】:Autofit Column Width using SSIS ETL on Visual Studio在 Visual Studio 上使用 SSIS ETL 自动调整列宽
【发布时间】:2017-11-14 05:55:18
【问题描述】:

我正在 Visual Studio 上创建 ETL,但是当我将数据导出到 Excel 上的表格时,列似乎有点短。有没有办法从 Visual Studio 自动调整列宽?谢谢

更新 1

这是我复制的代码以及我得到的错误

【问题讨论】:

    标签: sql-server excel ssis etl column-width


    【解决方案1】:

    您可以使用在DataFlow Task 成功后执行的script task 来实现此目的。您必须将Microsoft.Office.Interop.Excel 程序集添加到脚本任务引用并使用以下代码: (使用 Vb.Net)

    注意:您必须将 Microsoft.Office.Interop.Excel.dll 文件添加到以下目录(.Net Framework dll 目录)C:\Windows\Microsoft.NET\Framework\v2.0.50727 和(sql服务器数据工具 dll 目录)C:\Program Files\Microsoft SQL Server\100\DTS\Binn(使用 vs 2005 和 sql 2008)然后将此 dll 添加为脚本任务中的引用

    Imports Microsoft.Office.Interop
    
    Public Sub Main()
    
        Dim strFile as String = "C:\New Folder\1.xls"
        Dim m_XlApp As New Excel.Application
        Dim m_xlWrkbs As Excel.Workbooks = m_XlApp.Workbooks
        Dim m_xlWrkb As Excel.Workbook
    
        m_xlWrkb = m_xlWrkbs.Open(strFile)
    
        'Loop over all worksheets
        For Each m_XlWrkSheet As Excel.Worksheet In m_xlWrkb.Worksheets
    
            'Columns    
            m_XlWrkSheet.UsedRange.Columns.AutoFit()
    
            'Rows
            m_XlWrkSheet.UsedRange.Rows.AutoFit()
    
    
        Next
    
        m_xlWrkb.Save()
        m_xlWrkb.Close(SaveChanges:=True)
        m_XlApp.Quit()
    
    End Sub
    

    【讨论】:

    • 谢谢!但我仍然有问题。我做了你说的一切,我得到了一些错误。我会发布错误的答案
    • 首先你必须用你的excel路径替换c:\new folder\..
    • 第二次尝试在32位模式下运行包help.pragmaticworks.com/dtsxchange/scr/…
    • 也抛出异常,因为某些库引用自丢失的文件夹。删除引用并将它们从正确的路径添加回来解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2016-01-21
    • 2023-03-29
    • 2013-05-21
    • 2020-06-06
    • 2011-02-06
    相关资源
    最近更新 更多