【问题标题】:Is NPOI better than Office Interop in C# for automation using Selenium WebDriver在使用 Selenium WebDriver 实现自动化方面,NPOI 是否优于 C# 中的 Office Interop
【发布时间】:2016-10-12 06:04:25
【问题描述】:

我正在使用 C# 和 Selenium WebDriver 来自动化我们的 Web 应用程序。测试数据将从 Excel 表格 (.xlsx) 中读取。作为 C# 的新手,我想知道使用 NPOI 是从 Excel 读取/写入数据的好选择还是在 C# 中使用 Interop 是首选。我个人更喜欢 NPOI,因为我觉得它更容易使用。这可能是因为我在使用 Java 和 Selenium 进行自动化时接触了 Apache POI。请帮忙。

【问题讨论】:

    标签: c# selenium-webdriver npoi


    【解决方案1】:

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

    https://support.microsoft.com/en-us/kb/257757

    不要在 Web 环境中使用 Office Interop。

    【讨论】:

      【解决方案2】:

      首先,如前所述,Interop 需要在服务器上安装实际的 Excel 应用程序,这并不总是一个好主意,甚至可能根本不可能(即,如果您使用的是 Azure Web 应用程序)。我目前正在开发一个我们使用 Interop 重写的项目,但现在要迁移到 NPOI 主要是因为它的速度:使用 Excel Interop 某些任务需要大约 5-8 秒,因为它实际上会启动完整的 Excel 应用程序并进行通信通过 RPC 使用它。 NPOI 直接使用 Excel 文件,今天在测试一个提升动作时只需大约 300 毫秒,包括将修改后的工作簿保存到新文件。 因此,如果您必须专门处理旧的二进制 .xls 文件,NPOI 是不错的选择。如果您要使用现代 OpenXML 文件 (.xlsx),请查看 https://github.com/closedxml/closedxml

      【讨论】:

        【解决方案3】:

        Office 文档自动化的微软解决方案是 Open Xml:https://msdn.microsoft.com/en-us/library/bb448854(v=office.15).aspx

        【讨论】:

          猜你喜欢
          • 2017-05-30
          • 1970-01-01
          • 1970-01-01
          • 2019-05-13
          • 1970-01-01
          • 1970-01-01
          • 2012-08-04
          • 2016-12-06
          • 1970-01-01
          相关资源
          最近更新 更多