Excel 目的地會將數據載入Microsoft Excel 活頁簿中的工作表或範圍。
存取模式
Excel 目的地提供三種不同的資料存取模式來載入資料:
資料表或檢視。
變數中指定的數據表或檢視表。
SQL 語句的結果。 查詢可以是參數化查詢。
這很重要
在 Excel 中,工作表或範圍相當於數據表或檢視表。 Excel Source 和 Destination 編輯器中的可用資料表列表只會顯示現有的工作表(由附加至工作表名稱的 $ 符號識別,例如 Sheet1$)和具名範圍(如 MyRange 沒有 $ 符號識別)。
使用狀況的考量
Excel 連接管理員會使用 Microsoft OLE DB Provider for Jet 4.0 及其支援的 Excel ISAM(索引循序存取方法)驅動程式,來連接和讀取和寫入數據至 Excel 數據源。
許多現有的Microsoft知識庫文章都會記載此提供者和驅動程序的行為,雖然這些文章並非 Integration Services 或其前置數據轉換服務專屬,但您可能想要瞭解可能導致非預期結果的特定行為。 如需 Excel 驅動程式使用和行為的一般資訊,請參閱 HOWTO:搭配 Visual Basic 或 VBA 的 Excel 數據使用 ADO。
將數據儲存至 Excel 目的地時,Excel 驅動程式隨附的 Jet 提供者下列行為可能會導致非預期的結果。
儲存文字數據。 當 Excel 驅動程式將文字資料值儲存至 Excel 目的地時,驅動程式會在每個儲存格中的文字前面加上單引號字元 ('),以確保儲存的值會解譯為文字值。 如果您有或開發讀取或處理已儲存資料的其他應用程式,您可能需要包含每個文字值前面的單引號字元的特殊處理。
如需了解如何避免包含單引號的資訊,請參閱 msdn.com 上的此部落格文章:在使用 SSIS 套件中的 Excel 目的地數據流元件將數據轉換為 Excel 時,單引號會附加至所有字符串。
儲存備忘錄 (ntext) data. 在您成功將超過 255 個字元的字串儲存至 Excel 資料行之前,驅動程式必須將目的地數據行的數據類型辨識為 備忘 ,而不是 字串。 如果目的地數據表已經包含數據列,則驅動程式取樣的前幾個數據列至少必須包含備忘數據行中超過 255 個字元的值實例。 如果在封裝設計期間或運行時間建立目的地數據表,則 CREATE TABLE 語句必須使用 LONGTEXT (或其同義字之一)做為備忘數據行的數據類型。
數據類型。 Excel 驅動程式只會辨識一組有限的數據類型。 例如,所有數值欄都會解譯為雙精度浮點數(DT_R8),而所有字串欄(非備忘錄欄)都會解譯為 255 個字元的 Unicode 字串(DT_WSTR)。 Integration Services 會對應 Excel 數據類型,如下所示:
數值雙精確度浮點數 (DT_R8)
貨幣(DT_CY)
布林值布林值 (DT_BOOL)
日期/時間
datetime(DT_DATE)字串 Unicode 字串,長度 255 (DT_WSTR)
備忘錄 Unicode 文字串流 (DT_NTEXT)
數據類型和長度轉換。 Integration Services 不會隱含轉換數據類型。 因此,您可能需要使用衍生的數據行或數據轉換轉換,在將數據載入非 Excel 目的地之前明確地轉換 Excel 數據,或在將數據載入至 Excel 目的地之前先轉換非 Excel 數據。 在此情況下,使用 [匯入和匯出精靈] 建立初始封裝可能很有用,這會為您設定必要的轉換。 可能需要轉換的一些範例包括:
Unicode Excel 字串數據行與具有特定代碼頁的非 Unicode 字串資料行之間的轉換。
在 255 個字元的 Excel 字串資料行與不同長度的字串數據行之間進行轉換。
雙精確度 Excel 數值數據行與其他類型的數值數據行之間的轉換。
Excel 目的地的設定
Excel 目的地會使用 Excel 連接管理員連接到數據源,而連接管理員會指定要使用的活頁簿檔案。 如需詳細資訊,請參閱 Excel 連接管理員。
Excel 輸出端有一個常規輸入和一個錯誤輸出。
您可以透過 SSIS 設計師或以程式設計方式設定屬性。
如需有關您可以在 Excel 目的地編輯器 對話框中設定之屬性的詳細資訊,請按以下其中一個主題:
[ 進階編輯器] 對話方塊會反映可透過程式設計方式設定的所有屬性。 如需有關可以在 [進階編輯器] 對話方塊中或以程式設計方式設定之屬性的詳細資訊,請按下列其中一個主題:
如需如何設定屬性的詳細資訊,請參閱 設定數據流元件的屬性。
相關工作
另請參閱
Excel 來源
Integration Services (SSIS) 變數
資料流程
使用腳本任務處理 Excel 檔案