在使用Selenium WebDriver实现自动化方面,NPOI是否优于C#中的Office互操作

在使用Selenium WebDriver实现自动化方面,NPOI是否优于C#中的Office互操作,c#,selenium-webdriver,npoi,C#,Selenium Webdriver,Npoi,我正在使用C#和Selenium WebDriver来自动化我们的web应用程序。测试数据将从Excel表格(.xlsx)中读取。作为C#的新手,我想知道使用NPOI是否是从Excel读取/写入数据的好方法,或者在C#中使用Interop是首选方法。我个人更喜欢NPOI,因为我觉得它更容易使用。这可能是因为我在使用Java和Selenium进行自动化时接触了ApachePOI。请帮忙 Microsoft目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括ASP、ASP.NET、D

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

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

不要在web环境中使用Office互操作

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


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

microsoft Office文档自动化解决方案是开放式Xml:

microsoft Office文档自动化解决方案是开放式Xml:

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

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