SSIS动态Excel目标文件名

时间:2010-07-19 18:26:42

标签: sql sql-server-2008 ssis

如何配置从MS SQL Server 2008数据源获取数据的数据流任务,并将其放在Excel文件中,其中文件名看起来像'date filename'.xls?

4 个答案:

答案 0 :(得分:2)

Excel是SSIS最大的痛处。通常我存储一个只有列标题的模板文件,而不存储任何其他内容。我开始执行将模板文件复制到处理目录的任务。此时,您可以使用变量在表达式中创建文件名。或者,您可以在数据流中创建文件,然后在数据流之后的步骤中重命名该文件。使用文本文件,我已经在表达式中动态创建了连接,但Excel似乎很有趣。

答案 1 :(得分:2)

如果您的列定义没有更改....您可以转到

  1. 右键单击Excel连接管理器
  2. 表达
  3. 选择连接字符串
  4. bulid表达式(例如:(DT_WSTR,50)GETDATE()+ @ [user :: FileName] +“。xlsx”)

答案 2 :(得分:1)

选择Excel连接管理器实例的属性,单击“表达式”属性的省略号,并将“ExcelFilePath”的表达式设置为具有excel文件的有效路径的变量,这将处理连接字符串。 / p>

您在设计时需要一个变量有效的Excel文件,否则连接管理器不起作用,您可以在运行时使用脚本任务覆盖它,指向设计时不存在的Excel文件。

答案 3 :(得分:0)

HLGEM的回答肯定会有所帮助。按照@ sql-rookie的要求,我将提供一个有关如何将excel文件复制到以当前日期命名的新文件的示例。希望这会在将来对其他有相同问题的人有所帮助。

基本上,您只需要在File System Task之后添加一个额外的Data Flow Task。并将variable用于目标文件路径:"\\\\file\\"+SUBSTRING((DT_STR,30, 1252) GETDATE(), 1, 10) +".xlsx"

enter image description here

enter image description here