2010-07-19 72 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文件。