私は次のように私のコードを持っています:-
Microsoft.Office.Interop.Excel.Application oXL = null;
Microsoft.Office.Interop.Excel.Sheets sheets;
Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Workbooks.Add(System.Reflection.Missing.Value);
/*
* Here is the complete detail's about Workbook.Open()
*
* Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format,
* Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin,
* Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
*/
Workbook workbook = excel.Workbooks.Open(
System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),
Missing.Value, true, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value);
sheets = workbook.Worksheets;
今行のために:-
workbook = excel.Workbooks.Open(
System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),
Missing.Value, true, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value);
Visual Studio (F5) から直接実行されますが、IIS でアクセスしようとすると機能しません。次のようにエラーをスローします:-
Microsoft Office Excel は、ファイル 'c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx' にアクセスできません。いくつか
の理由が考えられます。 • ファイル名またはパスが存在しない。
? ファイルが別のプログラムによって使用されています。
? 保存しようとしているブックは、現在開いているブックと同じ名前です。
私は次のように回避策を試しました:-
- フォルダーとファイルが存在し、ファイルがあるフォルダー内の IUSR_### (IIS ユーザー) と ASPNET ユーザーにアクセス権を付与します。
- コンポーネント サービス (DCOM) で、適切なユーザーにアクセス権を与えます。
テンプレート (.xlsx) が存在するフォルダーにすべてのアクセス許可を既に与えています。
助言がありますか??