将数据导出到Excel工作表而不在SSIS

时间:2017-01-20 15:40:31

标签: excel ssis

我有这个问题。我必须动态创建Excel 2007文件。要做到这一点,我有一个Excel连接"第一行是列名"检查uncheked。然后我使用该Excel连接和以下SQL语句创建了一个SQL任务:

CREATE TABLE `MySheet` (`MyColumn` LongText)

然后我有一个数据流任务,用单列数据流填充工作表。

问题是,即使我取消选中"第一行是列名称"检查,导出仍然写" MyColumn"在第一行。我需要能够从第一行开始导出数据,而不会在其上写任何其他内容。

这是一个问题,因为在不同的运行中必须由SSIS包覆盖Excel文件。由于我们在创建文件的文件夹中没有删除许可,因此我需要删除上一次运行中的工作表内容。我设法使用SQL任务和带有语句的Excel连接:

DROP TABLE [MySheet]

这设法擦除每一行而不删除工作表。但是,由于此任务之后是数据流任务而不是工作表创建任务(因为工作表仍在那里),当数据流任务再次填充行时,它会将第一行留空。它不会重写列名。

这种差异是我试图避免的。

有什么方法可以避免这种情况吗?

由于

1 个答案:

答案 0 :(得分:0)

简短而甜蜜的回答是否定的。不可能。它总是必须使用一些东西来使它与众不同。你可以做的是,使用一个小的poweshell脚本打开excel文件,运行一个小宏来删除第一行,然后保存并关闭它。有很多PowerShell脚本可以帮助您解决这个问题。