Microsoft Office Excel 无法访问文件“c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx”

问题描述 投票:0回答:1

我的代码如下:-

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)所在文件夹的所有权限

有什么建议吗??

c# excel export-to-excel excel-interop
1个回答
136
投票

试试这个:

  1. 创建目录

C:\Windows\SysWOW6

© www.soinside.com 2019 - 2024. All rights reserved.