如何使用SSIS将数据导出到Excel 2007表格?
问题描述:
我有一个包含表格的Excel文件(XLSX):如何使用SSIS将数据导出到Excel 2007表格?
一旦我开始了我的SSIS任务(成功)插入它的数据,它实际上是表后追加:
我预期的结果:
所以我正在寻找一种方法来插入到表中并用数据展开它。我希望有人能帮助我。
答
我终于找到了答案。 所以我需要生成Excel链接到主表的许多枢轴图的Excel报告。
但使用表是一个坏主意。相反,数据透视图必须链接到命名范围。
要知道的最后一件事是,如果命名范围不使用OFFSET函数,则会出现错误消息“Invalid References”。
我的命名范围的公式是:
=OFFSET(Sheet!$A$1, 0, 0, COUNTA(Sheet!$A:$A), NUMBER_OF_COLUMNS)
如果表是工作表的名称和NUMBER_OF_COLUMNS是数据的列数。
就是这样。我现在可以生成没有任何代码行的Excel报告,只使用SSIS 2005.
答
我不会为此使用SSIS,您可能有Excel2007 as linked server,通过常规TSQL将数据放入Excel中,或者通过Excel VBA直接从SQL Server获取数据来处理数据。作为实用理智的事情,我would not ever use SSIS for anything
好了,没有太多的信息,你是怎么做的,但你应该以某种方式指定第一行不应该被用来作为标题名容器(HDR = NO),像,
- INSERT INTO OPENROWSET( 'Microsoft.Jet.OLEDB.4.0',
'的Excel 8.0;数据库= d:\ testing.xls; HDR = NO',
“SELECT * FROM [Sheet 1中$]')
我确实需要使用SSIS。我找到了一种使用OpenXML SDK将数据插入到Excel表格中的方法。但是我仍然在寻找一种直接进入SSIS的方法。我会惊讶这是不可能的。不幸的是,[WorksheetName]。[TableName]不起作用:(我会发布我的结局解决方案,除非有人提供给我一个解决方案。 – 2010-10-14 00:02:03
我自己辞去了使用ExtremeML的代码! – 2010-10-14 05:37:15
是的,我没有用Excel工作一段时间,但我记得2007年可以直接使用底层工作表数据的XML模式(2003年不提供) – 2010-10-14 05:55:25