在 Visual Studio 上使用 SSIS ETL 自动调整列宽
Autofit Column Width using SSIS ETL on Visual Studio
我正在 visual studio 上创建 ETL,但是当我将数据导出到 Excel 上的 table 时,列似乎有点短。有没有办法从 visual studio 自动调整列宽?谢谢
更新 1
这是我复制的代码以及我得到的错误
您可以使用在 DataFlow Task
成功后执行的 script task
来实现。您必须将 Microsoft.Office.Interop.Excel
程序集添加到脚本任务引用并使用以下代码: (used Vb.Net)
注意:您必须将Microsoft.Office.Interop.Excel.dll文件添加到以下目录(.Net Framework dll目录)C:\Windows\Microsoft.NET\Framework\v2.0.50727 and ( sql server data tools dll目录) C:\Program Files\Microsoft SQL Server0\DTS\Binn (using vs 2005 and sql 2008) 然后添加这个dll作为参考在你的脚本任务中
Imports Microsoft.Office.Interop
Public Sub Main()
Dim strFile as String = "C:\New Folder.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
我正在 visual studio 上创建 ETL,但是当我将数据导出到 Excel 上的 table 时,列似乎有点短。有没有办法从 visual studio 自动调整列宽?谢谢
更新 1
这是我复制的代码以及我得到的错误
您可以使用在 DataFlow Task
成功后执行的 script task
来实现。您必须将 Microsoft.Office.Interop.Excel
程序集添加到脚本任务引用并使用以下代码: (used Vb.Net)
注意:您必须将Microsoft.Office.Interop.Excel.dll文件添加到以下目录(.Net Framework dll目录)C:\Windows\Microsoft.NET\Framework\v2.0.50727 and ( sql server data tools dll目录) C:\Program Files\Microsoft SQL Server0\DTS\Binn (using vs 2005 and sql 2008) 然后添加这个dll作为参考在你的脚本任务中
Imports Microsoft.Office.Interop
Public Sub Main()
Dim strFile as String = "C:\New Folder.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