比较 Java 中的 CSV 文件

我们已经在我们的 Java 应用程序中讨论了如何比较两个 CSV 文件的基本方法。今天,在这篇文章中,我们将进一步学习比较 Java 中的两个以上的 CSV。我们将进一步讨论如何比较受密码保护的 CSV 文件。最后,将研究如何使用 Java 应用程序中的比较 API 接受和拒绝发现的更改。

以下主题涵盖以下内容:

用于比较 CSV 文件的 Java API

GroupDocs.Comparison 展示了它的 Java API,它允许将 CSV 文件与不同的选项进行比较。我将再次使用它来比较 Java 应用程序中的 CSV 文件。此外,它还支持比较两个以上的 CSV 文件,接受和拒绝发现的更改,以及比较受密码保护的文件。

下载和配置

下载 部分获取 CSV 比较库。对于基于 Maven 的 Java 应用程序,在 pom.xml 中添加以下配置。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>22.3</version> 
</dependency>

GitHub 上也提供了其功能的运行示例。请访问其 文档API 参考 获取指导。

比较 Java 中的 CSV 文件

使用 Java 对两个 CSV 文件进行基本比较 已经在另一篇文章中进行了讨论。在那里,我们查看了文件比较 Java 源代码、示例输入和比较输出文件。在继续之前,您可以访问该文章。

在 Java 中比较两个以上的 CSV 文件

如果需要比较两个以上的 CSV 文件,则非常相似,因为我们只比较两个文件。只需将第三个文件添加到 Comparer 对象。

以下是在 Java 中比较两个以上 CSV 文件的步骤。

  • 使用第一个 CSV 文件实例化 Comparer 类。
  • 使用适当的添加方法添加第二个文件。
  • 同样,使用 add 方法添加尽可能多的其他 CSV 文件。
  • 最后调用 compare 方法获取比较结果。

以下 Java 源代码比较了多个 CSV 文件。作为比较结果,它会生成单独的 CSV 和 HTML 文件。 HTML 输出文件以不同颜色突出显示已识别的更改。

// 比较 Java 中的多个(超过 2 个)CSV 文件

Comparer comparer = new Comparer("path/comma-separated-file-1.csv");
comparer.add("path/comma-separated-file-2.csv");
comparer.add("path/comma-separated-file-3.csv");
// ...
// ...
final Path outputFilePath = comparer.compare("path/comparison-result.csv");

比较 Java 中受密码保护的 CSV 文件

加载不同文档时可以使用不同的可用选项。如果您的 CSV 文件受密码保护,您可以在加载时提供密码。比较多个受密码保护的 CSV 文件的其余过程保持不变。

以下是如何在 Java 中比较受密码保护的 CSV 文件的步骤。

  • 使用 LoadOptions 类准备加载选项并设置密码以打开 CSV 文件。
  • 现在加载第一个 CSV 文件以在初始化 Comparer 类时进行比较。
  • 使用适当的添加方法添加第二个文件。
  • 同样,使用任何添加方法添加尽可能多的其他 CSV 文件。
  • 最后调用 compare 方法得到所有添加文件的比较结果。

以下源代码在 Java 中比较多个受密码保护的 CSV 文件并生成比较结果。

// 使用 Java 比较受密码保护的 CSV 文件

Comparer comparer = new Comparer("path/comma-separated-file-1.csv", new LoadOptions("file1-password"));
comparer.add("path/comma-separated-file-2.csv", new LoadOptions("file2-password"));
final Path outputFilePath = comparer.compare("path/comparison-result.csv");

接受或拒绝 Java 中 CSV 文件的已识别更改

就像 Microsoft Word 的跟踪更改功能允许我们接受或拒绝文档中所做的更改一样。您可以在 Java 应用程序中实现相同的功能。执行文件比较后,您可以接受或拒绝每个已识别的更改。以下是比较 CSV 文件并接受或拒绝已识别更改的步骤。

  • 使用 Comparer 类加载源和目标 CSV 文件。
  • 使用 compare 方法对加载的文件进行比较。
  • 使用 getChanges 方法获取已识别的更改。
  • 现在您可以遍历更改并为每个更改相应地设置它们的比较操作。
    • 对于同意的更改,您可以将其设置为接受。
    • 对于不同意的更改,您可以将其设置为 REJECT。
  • 最后,调用 applyChanges 方法以获取具有应用更改的结果文档。

以下 Java 源代码比较两个 CSV 文件,然后接受和拒绝找到的更改。

// 通过比较 Java 中的 CSV 文件来接受或拒绝已识别的更改

Comparer comparer = new Comparer("path/comma-separated-file-1.csv");
comparer.add("path/comma-separated-file-2.csv");

comparer.compare("path/comparison-result.csv");

ChangeInfo[] changes = comparer.getChanges();
changes[0].setComparisonAction(ComparisonAction.REJECT);
changes[1].setComparisonAction(ComparisonAction.ACCEPT);

comparer.applyChanges("path/comparison-result.csv", new SaveOptions(), new ApplyChangeOptions(changes));

获取免费 API 许可证

您可以获得 免费临时许可证 以便在没有评估限制的情况下使用 API。

结论

综上所述,今天我们学习了 Java 方法如何比较两个或多个 CSV 文件。除了接受和拒绝已识别更改的选项外,我们还学会了比较 Java 应用程序中受密码保护的 CSV 文件。

您可以找到许多其他选项来自定义比较结果。您可以设置比较敏感度、仅显示摘要页面、忽略空白等等。从 文档 中了解这些功能。

您可以开始为各种 支持的文档格式 构建自己的比较应用程序。如有疑问,请通过 论坛 联系我们。

也可以看看