Apache POI:比较工作表的简单方法?

use*_*930 1 apache compare apache-poi

我需要将两个工作表与 Apache POI 进行比较。有没有一种简单的方法可以做到这一点,例如工作表比较功能,或者我必须比较每个单元格?

小智 5

由于这是 Google 上关于比较 POI 工作簿的第一个问题之一,因此我想分享一个适用于单元测试的解决方案。我找到了一个很好的 Hamcrest 匹配器来解决这个问题:

http://baddotrobot.com/blog/2012/09/14/diff-excel-with-java-and-hamcrest/

基本上,通过 Maven 导入库(在 Github README 中有详细说明)。一旦你有两个 POI 工作簿,你就可以写一个类似这样的断言:

MatcherAssert.assertThat("Workbooks to be identical", actualWorkbook,
    WorkbookMatcher.sameWorkbook(expectedWorkbook));
Run Code Online (Sandbox Code Playgroud)

注意:我在这里使用 MatcherAssert 来获取关于比较的更详细的注释,但 JUnit Assert 也可以使用。这是在作者的网站上注明的。

它可以在GitHub 上和通过作者的个人 Maven 存储库获得