我有一个放在文件服务器上的 excel 文件。需要时我通过 dll 访问它,并在后台用一些数据填充它(通过 ExecuteExcel 功能)。
以前它可以正常工作。最近我将 2003 Office 更改为 2010 Office 版本。之后它开始抛出以下错误。
System.Runtime.InteropServices.COMException (0x80070BBC): Office 检测到此文件存在问题。为了帮助保护您的计算机,无法打开此文件。
即使现在,它有时也能正常工作,但有时会抛出上述错误。
这里有什么问题?
答案1
Office 2010 文件验证要求文件或文件位置可信。以下是有关此内容的知识库文章 -Microsoft Office 2010 中的错误消息:“Office 检测到此文件存在问题”。
尝试将文件位置添加到受信任的位置File > Options > Trust Center > Trust Center Settings > Trusted Locations
答案2
我在 Office 2013 中遇到了同样的问题。我的 ASPX 应用程序通过 Excell Interop 尝试打开 XLS 文件。但失败了。当文件以某种方式被识别为危险文件并且 Excell 尝试以“安全模式”打开它时,就会出现问题。(可能是旧的 XLS 文件、宏等。)但方法 Excell.Workbooks.Open 需要独占访问,而不是“安全模式”。因此会调用错误 COMException (0x80070BBC)。
解决方案:对我来说,最终帮助我的是:1) 根据所选用户(具有本地管理员权限)的安全性(宏等)更改 Excell 设置。2) 在 IIS 中创建一个新的应用程序池,并将其设置为 APSX 应用程序 3) 将应用程序池标识更改为步骤 1 中的用户 4) 重新启动 IIS