2016-09-25 32 views
0

ASP.net(C#)を使用してWebアプリケーションを作成しています。私は読んでいるサーバーに1つのExcelファイルを持っています。私はこのコードを使用してこのファイルを読み込もうとすると、例外がスローされます。私はファイルを保存した特定のフォルダのサーバー上でユーザー(IISユーザー)に完全な権利を与えました。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

Officeオートメーションis not supported from inside IISまたはコードがユーザーセッション(Windowsサービスなど)の外部で実行されているその他の状況。リンクされたナレッジベースでは、「サーバー側のOfficeの自動化を使用する場合の問題」の「メッセージ4」が表示されています。

.xlsから.xlsxに切り替えることができる場合は、Microsoft's Open XML SDK 2.5 for Officeを使用して、Office 2007以降のファイルを開いて操作することができます。

従来のファイル形式である.xlsを使用する必要がある場合は、それをサポートするサードパーティのライブラリが必要です。

関連する問題