excel - 在没有安装 excel 的情况下使用 VB.NET 读取 Excel
问题描述
我们有一个读取电子表格内容的 excel 宏(无写入权限)。
我们需要迁移代码以在无头服务器端运行它。
为了最大限度地减少迁移工作,我们考虑使用 Microsoft Interop 在 VB.NET 中重写宏。
这里建议创建一个使用 Office Interop 的 VB.NET 可执行文件,而无需安装 excel。
问题:真的可以这样做吗?我可以在未安装 Excel 的情况下使用 Office Interop 执行 VB.NET 来读取电子表格吗?
解决方案
以下是 MS 对服务器端自动化的陈述:
Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。
如果您正在构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用来自服务器端解决方案的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将承担整体解决方案稳定性的风险。
在Office 服务器端自动化的注意事项文章中阅读有关此内容的更多信息。
如果您只处理开放 XML 文档,您可以考虑使用Open XML SDK作为可能的替代方案。否则,您可以考虑使用不需要安装 Office 的第三方库。
如果没有安装 MS Office(互操作来自的应用程序),就无法使用互操作程序集。
推荐阅读
- javascript - 如何在wordpress上自动完成输入和API url?
- jquery - 为什么这个 CSS 选择器不能与 fontawsome 一起使用
- javascript - 使用异步/等待防止嵌套承诺是一个好“主意”吗?
- javascript - 如何从 JSON 对象生成 URL?
- android - 下载管理器不适用于 Android 10 (Q)
- css - 是否可以在反应中使用 css 自定义 FullCalendar?
- javascript - 将 Mousetrap Hotkey 绑定到某些 DOM 元素 - 仅在 div 处于活动状态时触发?
- flutter - 颤振错误:任务':app:compileDebugJavaWithJavac'的执行失败
- jquery - 点击后将 UL/LI 替换为 OPTION/SELECT
- javascript - 来自节点模块导入的意外令牌错误