共用方式為


Excel 連接管理員

適用於:SQL Server Azure Data Factory 中的 SSIS Integration Runtime

Excel 連線管理員可讓套件連接至 Microsoft Excel 活頁簿檔案。 Microsoft SQL Server Integration Services 包含的 Excel 來源和 Excel 目的地使用 Excel 連線管理員。

重要

如需連接至 Excel 檔案,以及將資料從 Excel 檔案載入或載入至 Excel 檔案的限制與已知問題的詳細資訊,請參閱使用 SQL Server Integration Services (SSIS) 將資料從 Excel 載入或載入至 Excel

當您將 Excel 連線管理員加入套件時,Integration Services 會建立連線管理員 (該連線管理員在執行階段會解析為 Excel 連線)、設定連線管理員屬性,並將該連線管理員加入套件上的 Connections 集合。

連線管理員的 ConnectionManagerType 屬性會設為 [EXCEL]

設定 Excel 連線管理員

您可以利用下列方式設定 Excel 連接管理員:

  • 指定 Excel 活頁簿檔案的路徑。

  • 指定用於建立檔案的 Excel 版本。

  • 指出所選取工作表或範圍中第一個資料列是否包含資料行名稱。

您可以透過 SSIS 設計師或以程式設計方式設定屬性。

如需可在 SSIS 設計工具中設定之屬性的詳細資訊,請參閱 Excel 連線管理員編輯器

如需以程式設計方式設定連線管理員的資訊,請參閱 ConnectionManager以程式設計方式加入連接

Excel 連接管理員編輯器

使用 [Excel 連線管理員編輯器] 對話方塊,將連接新增至現有或新的 Microsoft Excel 活頁簿檔案。

選項

Excel 檔案路徑
輸入現有或新的 Excel 活頁簿檔案的路徑和檔案名稱。

瀏覽
使用 [開啟] 對話方塊巡覽至 Excel 檔存在的資料夾,或您要建立新檔案之處。

Excel 版本
指定用於建立檔案的 Microsoft Excel 版本。

第一個資料列有資料行名稱
指定選取之工作表中資料的第一個資料列是否包含資料行名稱。 此選項的預設值是 [True]

從 Excel 匯入包含混合資料類型資料的解決方案

根據預設,如果您使用的資料包含混合資料類型,Excel 驅動程式會讀取前 8 列 (由 TypeGuessRows 登錄機碼設定)。 Excel 驅動程式會嘗試根據前 8 列,猜測每欄的資料類型。 例如,如果您的 Excel 資料來源在一欄中有數字與文字,若前 8 欄包含數字,則驅動程式可能會根據前 8 列,判斷欄中的資料是整數類型。 在此情況下,SSIS 會略過文字值,並將它們作為 NULL 匯入到目的地中。

若要解決此問題,請嘗試下列其中一個解決方案:

  • 將 Excel 欄類型變更為 Excel 檔案中的文字

  • 將 IMEX 擴充屬性新增至連接字串,以覆寫驅動程式的預設行為。 當您將 ";IMEX = 1" 擴充屬性加入至連接字串的結尾時,Excel 會將所有資料視為文字。 請參閱下列範例:

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\ExcelFileName.xlsx;Extended Properties="EXCEL 12.0 XML;HDR=YES;IMEX=1";
    

    為了讓此解決方案可靠地運作,您可能還必須修改登錄設定。 main.cmd 檔案如下所示:

    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
    
  • 以 CSV 格式儲存檔案,並變更 SSIS 套件以支援 CSV 匯入。

使用 SQL Server Integration Services (SSIS) 將資料從 Excel 載入或載入至 Excel
Excel 來源
Excel 目的地