日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

關(guān)于報(bào)錯(cuò):The Microsoft.ACE. Oledb.12.0 provider was not registered on the local computer

 新進(jìn)小設(shè)計(jì) 2021-04-23

錯(cuò)誤描述The Microsoft.ACE. Oledb.12.0 provider was not registered on the local computer

最近在Web項(xiàng)目中做一個(gè)自動(dòng)生成Excel→下載→修改→上傳→生成json格式文件的功能。

本地一切都順利,在部署到IIS服務(wù)器后,運(yùn)行發(fā)現(xiàn)掛了。

本人代碼:

 1  #region 讀取Excel中的數(shù)據(jù) 2         /// <summary>  3         /// 讀取Excel中的數(shù)據(jù) 支持表頭(.xlsx)   不支持表頭(.xls)   4         /// </summary>  5         /// <param name="fileName">Excel文件路徑</param>  6         /// <returns>Excel中的數(shù)據(jù)</returns>  7         public DataTable GetTable(string fileName) 8         { 9             OleDbConnection Conn = null;10             DataTable dt = null;11             string connString = string.Empty;12             OleDbDataAdapter da = new OleDbDataAdapter();13             DataTable dataTable = new DataTable();14             try15             {16                 string FileType = fileName.Substring(fileName.LastIndexOf("."));17                 if (FileType == ".xls")18                     connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";Extended Properties=Excel 8.0;";19                 else//.xlsx20                     connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";21                 // 創(chuàng)建連接對(duì)象22                 Conn = new OleDbConnection(connString);23                 // 打開(kāi)數(shù)據(jù)庫(kù)連接 24                 Conn.Open();25                 //獲取Excel工作薄中Sheet頁(yè)(工作表)名集合26                 DataTable ss = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });27                 string sql_F = "Select * FROM [{0}]";28                 for (int i = 0; i < ss.Rows.Count; i++)29                 {30                     da.SelectCommand = new OleDbCommand(String.Format(sql_F, ss.Rows[i][2].ToString()), Conn);31                     da.Fill(dataTable);32                 }33                 return dataTable;34             }35             catch (Exception ex)36             {37                 string Error = ErrorUtil.GetError(ex);38                 39                 if (log.IsDebugEnabled)40                 {41                     log.Debug("GenerateFinfo - Error2 : [" + Error + "]");42                 }43                 throw (ex);44             }45             finally46             {47                 // 釋放 48                 if (Conn != null)49                 {50                     Conn.Close();51                     Conn.Dispose();52                 }53                 if (dt != null)54                 {55                     dt.Dispose();56                 }57             }58         }59         #endregion

......

......

在我各種查閱,對(duì)比,實(shí)踐后把解決方法記錄下來(lái),和大家分享:

報(bào)錯(cuò)原因是本地安裝了Office客戶(hù)端,但是服務(wù)器沒(méi)有安裝Office客戶(hù)端。

我們都知道,安裝一個(gè)Office客戶(hù)端是需要占一些內(nèi)存的,這不利于服務(wù)器的性能。

所以我就查詢(xún)了資料,結(jié)合實(shí)踐,有了不安裝Office客戶(hù)端也能讀取Excel的解決辦法。

 

解決辦法:

        第一步:安裝數(shù)據(jù)訪問(wèn)組件:(AccessDatabaseEngine)

  1)適用于office2007的Access組件

  Microsoft Access Database Engine 2007 Office system 驅(qū)動(dòng)程序:數(shù)據(jù)連接組件

  2)適用于office2010的Access組件

  Microsoft Access Database Engine 2010 Redistributable
 

       下載安裝后電腦里便會(huì)有一組組件,非 Microsoft Office 應(yīng)用程序可以使用它們從 2007/2010 Office system 文件中讀取數(shù)據(jù),

       例如:

               1)從 Microsoft Office Access 2007/2010(mdb 和 accdb)文件中讀取數(shù)據(jù);

               2)從Microsoft Office Excel 2007/2010(xls、xlsx 和 xlsb)文件中讀取數(shù)據(jù)。

               這些組件還支持與 Microsoft Windows SharePoint Services 和文本文件建立連接。

         此外,還會(huì)安裝 ODBC 和 OLEDB 驅(qū)動(dòng)程序,供應(yīng)用程序開(kāi)發(fā)人員在開(kāi)發(fā)與 Office 文件格式連接的應(yīng)用程序時(shí)使用。

 

 

       第二步:打開(kāi)你所部署項(xiàng)目的電腦的IIS管理器,把你用的那個(gè)程序池修改“啟用兼容32位應(yīng)用程序” 屬性值為T(mén)rue。

              如下圖所示:

                              

              以上方法,親測(cè)有效,如果你遇到類(lèi)似的問(wèn)題依舊無(wú)法解決,可以查看一下Excel。有的讀取Excel的方法分xlxs和xls兩種文件。

                   

 

              



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多