Office Interop Excel DisplayAlerts = false 不适用于激活弹出窗口
Office Interop Excel DisplayAlerts = false not working for activation popup
在我的代码中,我使用 Microsoft.Office.Interop.Excel.dll 生成了 excel 报告。
但是在 运行 期间出现异常
System.Runtime.InteropServices.COMException (0x800AC472): Exception
from HRESULT: 0x800AC472
在线((xls.Range)worKsheeT.Cells[3, 1]).Font.Bold = true;
检查后发现出现此错误是因为应用程序正在等待 Excel 2013 年激活弹出窗口的响应,该响应仅在执行此代码后出现。
正如 pop 清楚地显示我们在服务器上有 excel 的评估版本,但我的问题是,我们是否有机会从 C# 中抑制弹出窗口并使用评估版本生成 excel 报告??
您可以考虑使用 Open XML SDK instead. See Welcome to the Open XML SDK 2.5 for Office 获取更多信息。
或者,如果您需要处理二进制文件格式,您可以考虑使用专为服务端执行而设计的第三方组件(例如,Aspose)。
Microsoft 目前不推荐也不支持来自任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT)的 Microsoft Office 应用程序自动化服务),因为当 Office 在此环境中 运行 时,Office 可能表现出不稳定的行为 and/or 死锁。
如果您正在构建 运行 在服务器端上下文中的解决方案,您应该尝试使用已针对无人值守执行安全处理的组件。或者,您应该尝试找到至少允许 运行 客户端部分代码的替代方案。如果您从服务器端解决方案使用 Office 应用程序,该应用程序将缺少许多 运行 成功所必需的功能。此外,您将承担整体解决方案稳定性的风险。在 Considerations for server-side Automation of Office 文章中阅读更多相关信息。
在我的代码中,我使用 Microsoft.Office.Interop.Excel.dll 生成了 excel 报告。
但是在 运行 期间出现异常
System.Runtime.InteropServices.COMException (0x800AC472): Exception from HRESULT: 0x800AC472
在线((xls.Range)worKsheeT.Cells[3, 1]).Font.Bold = true;
检查后发现出现此错误是因为应用程序正在等待 Excel 2013 年激活弹出窗口的响应,该响应仅在执行此代码后出现。
正如 pop 清楚地显示我们在服务器上有 excel 的评估版本,但我的问题是,我们是否有机会从 C# 中抑制弹出窗口并使用评估版本生成 excel 报告??
您可以考虑使用 Open XML SDK instead. See Welcome to the Open XML SDK 2.5 for Office 获取更多信息。
或者,如果您需要处理二进制文件格式,您可以考虑使用专为服务端执行而设计的第三方组件(例如,Aspose)。
Microsoft 目前不推荐也不支持来自任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT)的 Microsoft Office 应用程序自动化服务),因为当 Office 在此环境中 运行 时,Office 可能表现出不稳定的行为 and/or 死锁。
如果您正在构建 运行 在服务器端上下文中的解决方案,您应该尝试使用已针对无人值守执行安全处理的组件。或者,您应该尝试找到至少允许 运行 客户端部分代码的替代方案。如果您从服务器端解决方案使用 Office 应用程序,该应用程序将缺少许多 运行 成功所必需的功能。此外,您将承担整体解决方案稳定性的风险。在 Considerations for server-side Automation of Office 文章中阅读更多相关信息。