2010-07-19 50 views

回答

1

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

+0

谢谢您的回复,您可以提供样品吗? – 2010-07-19 20:16:56

+2

这是正确的答案。在SSIS中处理Excel文件就像以色列和巴勒斯坦的外交官在试图达成和平协议时一样。即使您按照最常见的答案中所述动态构建文件名,SSIS仍会错误地指出表(sheetname)不存在。因为我们每次创建一个新文件,所以Ofcourse表名将不存在。无论如何,我发现这个解决方案,创建一个模板,并使用文件系统任务来创建模板的空白副本,然后填充它,成为这样做的最安全的方法。 – Shiva 2016-02-23 22:07:42

2

只要你的列定义没有改变....你可以去

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

无法在SSIS上的Excel连接管理器的上下文菜单上找到表达式VS2008R2 – SarjanWebDev 2012-05-28 01:41:24

+0

我得到的文件输出为C:\ TestFolder \ Test2012-11-07 11:08:25.443000000.xls通过考虑变量:@FolderDestination是c:\ TestFolder \测试。是否有无论如何使它像时间戳FILENAME_YYYYMMDD_HHMMSS – goofyui 2012-11-07 16:11:53

+0

@SarjanWebDev这是正确的,它是不可用的上下文菜单。您可以在属性窗口中找到它。 (只要添加评论,如果有人仍然努力找到它) – Schalk 2014-08-13 10:33:40

1

选择Excel Connect ion Manager实例,单击'Expressions'属性的省略号,并将'ExcelFilePath'的表达式设置为具有有效路径的Excel变量文件,这需要关注连接字符串。

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