Sql 使用SSIS将数据导出到Excel文件
我有一个SSIS包,它将数据从表导出到Excel文件 控制流:- 数据流:- 这是我的步骤:- 删除Excel表格 创建Excel表格,格式为Select查询,用于从数据库检索数据 将数据从数据库插入Excel文件 我使用了类似Select*From表Where-Some条件的查询 我从10000行中检索3000行,并将这3000行放在我的excel工作表中。 但当打开我的excel工作表时,我看到滚动条一直到第10000行并结束,因此我的excel工作表大小也增加了。如何减少excel工作表的大小?我的excel表格只包含3000行,为什么空白单元格一直到第10000行 SQL Server 2008&Sql 使用SSIS将数据导出到Excel文件,sql,sql-server,Sql,Sql Server,我有一个SSIS包,它将数据从表导出到Excel文件 控制流:- 数据流:- 这是我的步骤:- 删除Excel表格 创建Excel表格,格式为Select查询,用于从数据库检索数据 将数据从数据库插入Excel文件 我使用了类似Select*From表Where-Some条件的查询 我从10000行中检索3000行,并将这3000行放在我的excel工作表中。 但当打开我的excel工作表时,我看到滚动条一直到第10000行并结束,因此我的excel工作表大小也增加了。如何减少excel工作表的
Visual Studio 2008与BIDS我相信您的问题在于创建文件所使用的方法。您有两种选择,两种选择都应该解决您的问题: 解决方案1: 您可以使用这些预定义的列创建一个Excel文件,基本上是您的空输出文件-这将充当您的“模板文件”。然后,您的流程将如下所示: 文件系统任务-将模板文件复制到输出或在必要时重命名工作目录 OLEDB源任务-查询数据源 数据转换任务 Excel目标任务-将数据放入新的Excel文件 注意:您已经完成了步骤2到3,只需确保您正在连接到新的Excel文件。另外,为了澄清,步骤1不在控制流任务范围内 这种方法很有用,因为您总是有一个空白且格式一致的Excel文件可供复制和使用 解决方案2: 另一个选项是使用脚本任务并创建Excel文件-您也可以在此任务中将数据加载到文件中。这需要对VB.NET或C有一些基本的了解。基本上,您需要像这样的XLS库。这更复杂,但为您提供了最好的功能 我建议您尝试解决方案1,看看它对您的作用。Drop table SheetName不会删除工作表,而只是删除行。如果您第一次加载了10K行,然后又通过将行数限制为3K来执行包,则excel文件仍将包含这些10K空行,因为它将保留图纸和空白 您可以使用脚本任务使用COM对象删除工作表。但为此,您需要放置Excel主互操作组件,使其对VSA可见,或者在每次运行包时创建一个新的Excel文件 按照Nicarus的建议,使用文件系统任务删除现有文件,并在每次执行时创建一个新的Excel文件 图表: 文件系统任务:
使用相同的组件和使用Execute SQL task和DFT的Create Table查询仅检索3000行的原因是什么?让SQL查询只返回3000行而不是在SSI中限制它有意义吗?另外,这是用于Excel 97-2003 xls还是2007+xlsx?其Excel 97-2003文件格式。我的OLE DB源正在检索3000行并将其放在Excel文件中…那么为什么我的Excel文件滚动条一直到第10000行?因此,您的Excel文件必须已经存在,因为您必须连接到它。在这种情况下,它已经有多少空白记录?换句话说,如果您在运行SSIS包之前打开文件,它是否会向下滚动到10000行?请查看图表..我正在Excel工作表1上编写查询。删除表格,然后在Excel工作表上创建表格,该工作表只创建标题的第一行。能否在“创建Excel表格”任务中发布查询?我也在使用选项1,但遇到错误。在上面选项1中的文件复制任务步骤1之后,我的程序包在步骤4失败,错误是表格excel工作表不存在。尽管如此。有人遇到过这个问题吗?我确认模板文件已正确复制并存在。另外,4中的excel文件连接是一个包含新复制的excel文件的文件名的变量。