【问题标题】:Read Excel using VB.NET without having excel installed在没有安装 excel 的情况下使用 VB.NET 读取 Excel
【发布时间】:2021-10-07 21:44:45
【问题描述】:

我们有一个读取电子表格内容的 Excel 宏(无写入权限)。

我们需要迁移代码以在无头服务器端运行它。

为了尽量减少迁移工作,我们考虑使用 Microsoft Interop 在 VB.NET 中重写宏。

Here 建议创建一个 VB.NET 可执行文件使用 Office Interop 而无需安装 excel。

问题:真的可以这样做吗?我可以在未安装 Excel 的情况下使用 Office Interop 执行 VB.NET 来读取电子表格吗?

【问题讨论】:

  • 这个comment by Caius Jard有建议。
  • @AndrewMorton 谢谢。但我只是对是否有一种无需安装 excel 即可运行 Office 互操作的方法感兴趣,即使只需要读取权限。
  • 没有安装 MS Office 就无法使用互操作程序集(互操作来自的应用程序)。

标签: excel vb.net office-interop excel-interop windows-server


【解决方案1】:

这是 MS 对服务器端自动化的陈述:

Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定Office 在此环境中运行时出现的行为和/或死锁。

如果您要构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将在整体解决方案的稳定性方面承担风险。

Considerations for server-side Automation of Office 文章中了解更多信息。

如果您只处理开放的 XML 文档,您可以考虑使用Open XML SDK 作为可能的替代方案。否则,您可以考虑使用不需要安装 Office 的第三方库。

没有安装 MS Office 就无法使用互操作程序集(互操作来自的应用程序)。

【讨论】:

  • 所以我猜这个评论stackoverflow.com/questions/5845770/…是错误的......
  • 微软的引述涉及 Office 的安装。 OP 希望避免安装 Office,因此不支持安装 Office 的通知不适用。
  • 使用哪个组件由您决定。如果 NPOI 不需要在服务器上安装 Office 应用程序 - 那肯定是一种方法。
  • 其实我只想知道我最初的问题是否可以用是或否来回答..
【解决方案2】:

正如 cmets 和许多其他来源中所写,如果没有安装 MS Office,就无法使用 MS 互操作程序集。

我在原问题中提到的proposal似乎是错误的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多