2016-09-25 66 views
0

我正在使用ASP.net(C#)編寫Web應用程序。我在服務器上有一個我想讀的excel文件。當我嘗試使用下面的代碼讀取這個excel文件時,它會拋出異常。我已經爲服務器上的用戶(IIS用戶)提供了完整的權限,用於保存excel文件的特定文件夾。使用C#讀取ASP.net中的excel文件時,訪問被拒絕

閱讀邏輯:

Excel.Application xlApp = null; 
Excel.Workbook xlWorkbook = null; 
Excel._Worksheet xlWorksheet = null; 
Excel.Range range = null; 

xlApp = new Excel.Application(); 
xlWorkbook = xlApp.Workbooks.Open("C:\inetpub\wwwroot\Uploads\data.xls); 
xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.get_Item(sheetName); 
range = xlWorksheet.get_Range("A1", "B5"); 

例外:

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).

能否請你幫我理解這個問題?

回答

2

辦公自動化is not supported from inside IIS或代碼在用戶會話外運行的任何其他情況(例如Windows服務)。在鏈接的知識庫中,您可以看到在「使用服務器端Office自動化問題」部分中獲得了「消息4」。

如果可以從.xls切換到.xlsx文件,您可以使用Microsoft's Open XML SDK 2.5 for Office來打開和處理office 2007及更新的文件。

如果您必須使用舊版文件格式.xls,則需要查找可支持該文件的第三方庫。

相關問題