【问题标题】:error System.Runtime.InteropServices.COMException: 'Sorry, we couldn't find xxx.xlsx. Is it possible it was moved, renamed or deleted?'错误 System.Runtime.InteropServices.COMException:'对不起,我们找不到 xxx.xlsx。有没有可能它被移动、重命名或删除?
【发布时间】:2021-01-29 22:05:40
【问题描述】:

我正在尝试使用 Microsoft.Office.Interop.Excel 打开一个 excel 文件,但出现此错误:

System.Runtime.InteropServices.COMException:'抱歉,我们找不到 C:\Users\user\test.xlsx。是否有可能被移动、重命名或删除?'

这是我的 C# 代码:

Workbooks xlWorkBooks = null;
            Workbook xlWorkBook = null;
            Application xlApp = new Application();

            xlWorkBooks = xlApp.Workbooks;
            xlWorkBook = xlWorkBooks.Open(@"‪C:\Users\user\test.xlsx");

excel 文件存在且名称正确。 我正在使用 Windows 10 / microsoft office 2013

【问题讨论】:

  • 您在该服务器上安装了 Excel 吗?此外,由于大多数 Web 服务器以 x64 位运行,因此必须假设您在此处安装了 x64 位 office/Excel。无论哪种方式,您都必须在服务器上安装 Excel。公平地说,不建议您以这种方式 COM 自动化办公程序 - 它们往往不是非常线程安全的。但是,office 安装的位大小必须与您的代码运行方式相匹配。如果您打算这样做,请不要使用任何 CPU - 强制项目为 x64 或至少与最终 Web 服务器将运行的位大小相同。

标签: c# asp.net excel office-interop excel-interop


【解决方案1】:

用户的文件受到保护,应用程序可能无权访问该文件。我遇到了同样的问题并解决了它,将我的测试文件移动到 C:\(例如 C:\ 测试)中不需要特殊访问权限的文件夹。

编辑:直接在根文件夹中的文件有类似的限制,因此是“测试”文件夹。

【讨论】:

    猜你喜欢
    • 2015-05-26
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2018-12-17
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    相关资源
    最近更新 更多