2016年7月1日 星期五

'Microsoft.Jet.OLEDB' 不支援64bits環境的替代方案。

原先跑的很順的網站轉移作業系統環境到Windows Server 2012,出現錯誤訊息
「'Microsoft.Jet.OLEDB.4.0' 提供者並未登錄於本機電腦上。」才注意到這個每次處理每次忘記已經存在很久的問題..........

替代方案:「Microsoft Access Database Engine 2010 可轉散發套件 

註:雖然網頁上未將Windows Server 2012列在支援的作業系統,但以這個範例而言是可以正常執行的。(就算不能執行,目前好像也找不到其他更新的版本...)

以輸出檔名為"output.xls"的excel檔為例,相關設定說明如下:

ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=output.xls;Extended Properties='Excel 12.0 Xml;HDR=Yes'";
  • Provider 引數設定為 "Microsoft.ACE.OLEDB.12.0"
  • DataSource引數設定為輸出檔名
  • HDR引數設定為Yes 代表第一行是標題,設定為No代表第一行是資料
  • Extended Properties則可依需求參照下表設定

檔案類型 (副檔名)延伸屬性
Excel 97-2003 活頁簿 (.xls) "Excel 8.0"
Excel 2007-2010 活頁簿 (.xlsx)"Excel 12.0 Xml"
Excel 2007-2010 具有巨集功能的活頁簿 (.xlsm) "Excel 12.0 Macro"
Excel 2007-2010 非 XML 的二進位活頁簿 (.xlsb)"Excel 12.0"

沒有留言:

張貼留言