将数据导出到超过255列的Excel的解决方法
SSMS和SSRS到Excel在复制粘贴时启用超过255列。
SSIS不允许超过255个列导出到Excel 2007.有没有办法来覆盖这个?
问题
使用Sql server数据工具导出到Excel文件时有很多限制
解决方法
你可以做一些解决方法来实现这一点:
- 创build一个将数据导出到
FlatFile
( csv )的数据stream任务 - 将您的目标文件名存储在variables中
- 使用具有类似function的脚本任务创build另一个将您的csv文件转换为Excel文件的Dataflow任务
注意:您必须将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.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中导入数据,则可以按照此链接进行操作
参考
第三方组件
- http://cbtr.net/red8rain/2012/04/17/ssis-export-more-than-255-columns-from-sql-table-to-excel/
- http://www.cozyroc.com/
解决方法
- https://social.msdn.microsoft.com/Forums/en-US/74df1378-7c0c-4c0f-b174-fa97a5c2969b/convert-csv-to-xlsx?forum=Vsexpressvb
- https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e8fe9b48-d299-4dd2-95f7-bfc46825cf6d/trying-to-use-custom-assembly-with-script-task-in-ssis- 2008年着find的,正确的版本-的- GACUTIL?论坛= sqlintegrationservices
请参阅链接 。 最好的方法是在SSIS中创build一个脚本,将内容复制为csv格式。 你可以使用c#或VB.Net。