我的代码如下: -
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)所在的文件夹
有什么建议吗?
答案 0 :(得分:105)
试试这个:
C:\的Windows \ Syswow64资料\配置\ systemprofile \桌面
(对于64位Windows计算机上的32位版本的Excel / Office)或
C:\的Windows \ system32 \设置\ systemprofile \桌面
(对于32位Windows计算机上的32位版本的Office或64位Windows计算机上的64位版本的Office)。
原帖和答案:
答案 1 :(得分:12)
请注意,在我的位置添加c:\ windows \ syswow64 \ config \ systemprofile \ desktop 目录没有用。
重点是WOW64代表Windows64上的Windows,这意味着它实际上适用于在64位操作系统上运行的32位程序。
由于我安装了64位Excel,因此正确的目录就是 C:\ WINDOWS \ system32 \设置\ systemprofile \桌面
答案 2 :(得分:2)
就我而言,我遵循了here提供的建议并解决了问题。
步骤:
dcomcnfg
在步骤2中,如果找不到该路径,请尝试运行mmc comexp.msc /32
而不是dcomcnfg
。
答案 3 :(得分:1)
我想在Eric Bonnot的回答中添加一些内容: 答案部分解决了,因为我使用 powerpoint PIA 的非管理员用户在IIS服务器上工作。
我注意到如果这个文件中有媒体(例如图片),我无法打开pptx文件。
" hack"是在 systemprofile / AppData 目录中添加对Windows用户(使用PIA的用户)的权限。
希望这有帮助
答案 4 :(得分:0)
我之前尝试过这个问题然后我解决了。
解决方案:
我将完整权限放到特定文件夹(子文件夹和文件)并检查工作正常。
答案 5 :(得分:-1)
这有效
excel.exe / safe
这不会和常规excel启动时出现相同的错误
excel.exe / automation
对于任何网络文件,所有MS Office 2007应用程序也会出现这种情况。本地文件访问很好。