将数据导出到Excel的列数超过255列的解决方法

时间:2017-02-19 01:53:45

标签: sql-server excel ssis etl sql-server-data-tools

复制粘贴时,

SSMS SSRS 到Excel可启用超过255列。

SSIS 不允许将超过255列导出到Excel 2007。 有没有办法覆盖这个?

2 个答案:

答案 0 :(得分:2)

问题

exporting to an Excel Files using Sql server data tools

时有很多限制

的变通方法

您可以采取一些解决方法来实现这一目标:

  1. 创建一个数据流任务,将您的数据导出到FlatFile csv
  2. 将目标FileName存储在变量
  3. 使用具有类似功能的脚本任务创建另一个将csv文件转换为Excel文件的Dataflowtask
  4. 注意:您必须将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.Office.Interop
    
        Public Sub ConvertCSVToExcel(Fromcsv As String, Toxlsx As String)
            Dim Exl As New Excel.Application()
            Try
                Dim wb1 As Excel.Workbook = Exl.Workbooks.Open(Fromcsv, Format:=4)
                wb1.SaveAs(Toxlsx, FileFormat:=XlFileFormat.xlOpenXMLWorkbook)
                wb1.Close()
                Exl.Quit()
            Catch ex As Exception
    
                            Exl.DisplayAlerts = False
                Exl.Quit()
    
            End Try
        End Sub
    

    第三方组件

    或者您必须使用第三方组件,例如cozyRoc SSIS+

    旁注

    如果您要从超过255列的Excel中导入数据,可以按照Link

    进行操作

    参考

    第三方组件

    解决方法

答案 1 :(得分:1)

参考link。最好的方法是在SSIS中创建一个脚本,将内容复制为csv格式。您可以使用c#或VB.Net。