Sql-Server

如何避免 SSIS Excel 目標中的空行?

  • May 22, 2017

在使用 SSIS 導出到 Excel 時,有沒有人有辦法避免出現空行。下面是一個數據流任務的簡單範例:

OLE DB 源:

OLE DB 源:

數據轉換(處理煩人的 UNICODE / NON-UNICODE 交易):

數據轉換

根據 Excel 連接管理器中“FirstRowHasColumnName”的值,最終結果是以下兩個之一。注意,空白行。

輸出 1

輸出 2

我從 2008 R2 安裝和 Excel 2010 在 SSIS 中對此進行了測試。

在連接管理器中使用 Excel 97-2003 輸出格式,我能夠重現第一行有標題名稱,然後是空白,然後是數據的情況。但是更改“第一行有列名”對我有不同的影響:我仍然得到標題行,但沒有空白。

使用 Excel 2007 格式,我也無法抑制標題行,儘管在這兩種情況下,它都沒有輸出空白行。

您沒有說是否需要標題行,或者您使用的是哪種輸出格式;根據我的測試,您使用的是 97-2003,因此您可能需要做的就是切換到 2007 格式。

在 Excel 目標僅顯示數據行之前附加數據查看器,因此目標組件正在添加額外的空白。因此,如果無法將 Destination 配置為擺脫空白,那麼您就不走運了。

不過可以這麼說,因為這個組件的行為看起來非常有問題,甚至讓它工作的整個設置過程都非常痛苦,我強烈考慮切換到更穩定的組件,比如平面文件目標輸出CSV,也可以直接在 Excel 中打開。

我最近遇到了類似的問題,對我有用的是通過添加文件系統任務來複製具有相同表結構的空文件來欺騙數據流任務。這是我的 3 步解決方案:

  1. 我使用 excel 目標和參數化連接字元串創建了數據流任務。
  2. 我創建了一個名為“預設文件夾”的文件夾,並複制了在步驟 1 中創建的空 excel 目標。
  3. 我添加了一個文件系統任務來複製預設文件$$ Default folder $$如果文件存在,則覆蓋到我指定的目標文件夾中。

引用自:https://dba.stackexchange.com/questions/44599