SSIS 讀取 Excel xlsx 檔案 , 出現無法擷取 Excel 連線管理員

2022/10/06閱讀時間約 5 分鐘

情境

SSIS Visual Studio 中的 Excel 來源、Excel 目的地 來讀取 Excel . xlsx 出現錯誤, 無法擷取連線管理員 'Excel 連線管理員, 導致無法選取 Excel 工作表;

觀念

現在企業大都把 Office 2003 升級到 Office 2010 , 2016 甚至 Office 2019. xls 和 xlsx 有何差異呢? 說明如下
  • Excel 副檔名由 .xls 變成 .xlsx
  • 版本不同
    xls 是 Excel 2003及以前版本的格式
    xlsx 是 Excel 2007及之後版本的格式
  • 文件格式不同
    xls 是一个特有的二進制格式,
    xlsx 的核心结构是 XML 的結構,採用 XML 的壓縮方式占用空間更小。xlsx 最后 x 就是指 XML
  • xls : 數據超出256列和65536行,會導致數據被截斷
    xlsx : 數據可支援到 1,048,576 筆資料列, 16,384 資料行

Issue:

若 SSIS 中的 Excel 來源和 Excel 目的地元件. 若要讀取 Excel 2007後的 .XLSX 檔會出現” 無法擷取連線管理員 'Excel 連線管理員 “ 如下圖
要讀取 Excel 2007後的 .XLSX
出現” 無法擷取連線管理員 'Excel 連線管理員" 的錯誤訊息
無法擷取連線管理員 'Excel 連線管理員' 的資料表資訊。
無法使用連線管理員 'Excel 連線管理員' 連接到來源

Solution:

必須重新安裝 Microsoft Access Database Engine 2016 可轉換散發套件 , 讓 Excel 元件可以讀取 XLSX.
  1. 但由於 Excel 連線管理員 Microsoft.ACE.OLEDB.12.0 是 32 bit driver.
    所以必須 安裝Microsoft Access Database Engine 2016 可轉換散發套件(32 bit) 才行, 64 bit driver 會無法使用
  2. 我的電腦是 office 64 bit , 若安裝 Microsoft Access Database Engine 2016 可轉換散發套件(32 bit) 才行, 郤又叫我要 uninstall office 64 bit , 但我又要用 office 64 bit.
安裝 Microsoft Access Database Engine 2016 可轉換散發套件(32 bit) 會出現此錯誤
以上 1. 2 點是衝突的. 所以上網找, 終於找到解決方式, 再此分享給大家, 節省大家的時間.
解決方法如下:
  1. 下載 Microsoft Access Database Engine 2016 可轉散發套件 ( 32 bit )
    https://www.microsoft.com/zh-tw/download/details.aspx?id=54920
    選擇 accessdatabaseengine.exe <- 注意要選這個, 不能選 X64.exe 喔

    注意:您必須先使用 [控制台] 中的 [新增/移除程式] 將舊版 Access 資料庫引擎從您的電腦移除,才能安裝此下載項目。
  2. 打開 Dos Command
  3. cd 到 你下載 Microsoft Access Database Engine 2016 可轉散發套件 ( 32 bit ) 的資料夾
  • 若是 Microsoft Access Database Engine 2016 可轉散發套件:
accessdatabaseengine.exe /quiet  
/quiet 就是告訴系統, 不要問 32bit 還是 64 bits , 裝就對了.
  • 若是Microsoft Access Database Engine 2010 可轉散發套件 :

accessdatabaseengine.exe /passive
4. 把 registry Key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\Files Paths 中的 mso.dll 改名或者刪除. 就可以
5. 測試 SSIS 中的 Excel 來源、Excel 目的地 , 就可以正確讀取 xlsx 檔案了
SSIS 中的 Excel 來源 就可以正確讀取 xlsx 檔案
以上就是我的分享. 若對你有幫助, 請在下面 按讚、留言. 或 愛心符號. 你的肯定, 是我撰寫的動力.
Phoenix 鳳哥
Phoenix 鳳哥
Phoenix 鳳哥
鳳哥,江湖人稱 Phoenix。愛好分享 MarTech、Tableau、BI、PM等技術。於資訊業甲乙方工作24年。現為自由資訊工作者。曾擔任KFC資訊經理、Pi拍錢包技術經理、BenQ 專案經理、前進國際資深顧問、台科大資訊 EMBA碩士。獲得《崇越EMBA最優論文得主》、《KFC 最佳員工》
留言0
查看全部
發表第一個留言支持創作者!
從 Google News 追蹤更多 vocus 的最新精選內容