Porovnejte soubory CSV v Java

Již jsme diskutovali základní způsob, jak porovnat dva CSV soubory v rámci našich Java aplikací. Dnes se v tomto článku dále naučíme porovnat více než dva CSV v Java. Dále probereme, jak porovnat soubory CSV chráněné heslem. Nakonec se podíváme na to, jak přijmout a odmítnout nalezené změny pomocí srovnávacího API v rámci aplikace Java.

Níže jsou uvedena následující témata:

Java API pro porovnávání souborů CSV

GroupDocs.Comparison předvádí své Java API, které umožňuje porovnávat soubory CSV s různými možnostmi. Opět jej použiji pro porovnání CSV souborů v rámci Java aplikace. Kromě toho podporuje porovnávání více než dvou souborů CSV, přijímání a odmítání zjištěných změn a porovnávání souborů chráněných heslem.

Stáhnout a nakonfigurovat

Získejte srovnávací knihovnu CSV ze sekce ke stažení. Pro Java aplikace založené na Maven přidejte následující konfiguraci do 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>

Spuštěné příklady jeho funkcí jsou také k dispozici na GitHub. Pokyny naleznete v dokumentaci a odkaz na rozhraní API.

Porovnejte soubory CSV v Java

O základním srovnání dvou CSV souborů pomocí Javy jsme již pojednali v samostatném článku. Tam jsme se podívali na zdrojový kód Java pro porovnání souborů, ukázkový vstup a výstupní soubor porovnání. Než budete pokračovat, můžete tento článek navštívit.

Porovnejte více než dva soubory CSV v Java

Pokud je požadavek porovnat více než dva soubory CSV, je to velmi podobné, protože porovnáváme pouze dva soubory. Stačí přidat třetí soubor do objektu Comparer.

Následují kroky k porovnání více než dvou souborů CSV v Java.

  • Vytvořte instanci třídy Comparer s prvním souborem CSV.
  • Přidejte druhý soubor pomocí vhodné metody přidání.
  • Podobně přidejte co nejvíce dalších souborů CSV pomocí metod add.
  • Nakonec zavolejte metodu porovnání a získejte výsledky porovnání.

Následující zdrojový kód Java porovnává více souborů CSV. Výsledkem porovnání je generování samostatných souborů CSV a HTML. Výstupní soubor HTML zvýrazní identifikované změny v různých barvách.

// Porovnat více (více než 2) soubory CSV v Java

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");

Porovnejte soubory CSV chráněné heslem v Java

Existují různé dostupné možnosti, které lze použít při načítání různých dokumentů. Pokud jsou vaše soubory CSV chráněny heslem, můžete heslo zadat při načítání. Zbytek postupu zůstává stejný pro porovnávání více souborů CSV chráněných heslem.

Níže jsou uvedeny kroky, jak porovnat soubory CSV chráněné heslem v Java.

  • Připravte si možnosti načítání pomocí třídy LoadOptions a nastavte heslo pro otevření souboru CSV.
  • Nyní načtěte první soubor CSV k porovnání při inicializaci třídy Comparer.
  • Přidejte druhý soubor pomocí vhodné metody přidání.
  • Podobně přidejte co nejvíce dalších souborů CSV pomocí kterékoli z metod přidání.
  • Nakonec vyvolejte metodu porovnání, abyste získali výsledek porovnání všech přidaných souborů.

Následující zdrojový kód porovnává několik souborů CSV chráněných heslem v jazyce Java a generuje výsledky porovnání.

// Porovnejte soubory CSV chráněné heslem pomocí Java

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");

Přijmout nebo odmítnout identifikované změny souborů CSV v Java

Stejně jako funkce sledování změn aplikace Microsoft Word, která nám umožňuje přijmout nebo odmítnout provedené změny v dokumentech. Stejnou funkci můžete implementovat v aplikacích Java. Po provedení porovnání souborů můžete přijmout nebo odmítnout každou z identifikovaných změn. Níže jsou uvedeny kroky k porovnání souborů CSV a přijetí nebo odmítnutí identifikovaných změn.

  • Načtěte zdrojové a také cílové soubory CSV pomocí třídy Comparer.
  • Proveďte porovnání načtených souborů pomocí metody porovnání.
  • Načtěte identifikované změny pomocí metody getChanges.
  • Nyní můžete procházet změny a odpovídajícím způsobem nastavit jejich ComparisonAction pro každou změnu.
    • Pro dohodnuté změny můžete nastavit jako ACCEPT.
    • Pro nesouhlasné změny můžete nastavit jako REJECT.
  • Nakonec zavolejte metodu applyChanges, abyste získali výsledný dokument s aplikovanými změnami.

Následující zdrojový kód Java porovná dva soubory CSV a poté přijme a odmítne nalezené změny.

// Přijměte nebo odmítněte identifikované změny porovnáním souborů CSV v Java

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));

Získejte bezplatnou licenci API

Můžete získat bezplatnou dočasnou licenci, abyste mohli používat API bez omezení hodnocení.

Závěr

Abych to shrnul, dnes jsme se naučili způsobem Java porovnávat dva nebo více souborů CSV. Kromě možnosti přijmout a odmítnout identifikované změny jsme se také naučili porovnávat zaheslované CSV soubory v rámci Java aplikací.

Můžete najít mnoho dalších možností přizpůsobení výsledků porovnání. Můžete nastavit citlivost srovnání, zobrazit pouze souhrnnou stránku, ignorovat mezery a mnoho dalšího. Informace o těchto funkcích naleznete v dokumentaci.

Můžete začít vytvářet vlastní srovnávací aplikace pro různé podporované formáty dokumentů. V případě dotazů nás kontaktujte prostřednictvím fóra.

Viz také