Comparar arquivos CSV usando C# .NET

Recentemente discutimos a maneira básica de comparar dois arquivos CSV em nossos aplicativos .NET. Hoje, neste artigo, aprenderemos ainda mais a comparar mais de dois CSVs usando C#. Além disso, discutiremos como comparar os arquivos CSV protegidos por senha. Por último, mas não menos importante, como aceitar e rejeitar as alterações encontradas usando C# dentro do aplicativo .NET.

Os seguintes tópicos são abordados abaixo:

API .NET para comparar arquivos CSV

GroupDocs.Comparison tem sua .NET API que permite comparar arquivos CSV de várias maneiras. Vamos usá-lo para comparar arquivos CSV dentro do aplicativo .NET. Ele também suporta a comparação de mais de dois arquivos CSV, arquivos protegidos por senha, aceitando e rejeitando as alterações descobertas.

Você pode baixar as DLLs ou o instalador MSI da seção de downloads ou instalar a API adicionando seu pacote ao seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Comparison

Exemplos de execução para seus recursos também estão disponíveis em GitHub. Visite sua documentação e Referência da API para obter orientação.

Comparar arquivos CSV usando C#

Já discutimos a comparação básica de dois arquivos CSV anteriormente. Lá, examinamos o código-fonte C# de comparação de arquivos, os arquivos de entrada de amostra para comparação e o arquivo de saída de comparação. Você pode visitar esse artigo para uma comparação básica.

Compare mais de dois arquivos CSV usando C#

Se você tiver mais de dois arquivos CSV para comparar, não há com o que se preocupar. É tão simples quanto comparar dois arquivos. Você só precisa adicionar o terceiro arquivo ao Comparador.

A seguir estão as etapas para comparar mais de dois arquivos CSV usando C#.

  • Instancie a classe Comparer com o primeiro arquivo CSV a ser comparado.
  • Adicione o segundo arquivo CSV usando o método Add apropriado.
  • Da mesma forma, adicione tantos outros arquivos CSV usando o método Add.
  • Por fim, invoque o método Compare para obter os resultados de comparação de todos os arquivos CSV adicionados.

O código-fonte C# a seguir compara vários arquivos CSV e gera os resultados da comparação em arquivos CSV e HTML separados. O arquivo de saída HTML destaca as alterações em cores diferentes.

// Compare vários (mais de 2) arquivos CSV usando C#

using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv"))
{
    // Adicionando vários arquivos CSV para comparar
    comparer.Add("path/comma-separated-file-2.csv");
    comparer.Add("path/comma-separated-file-3.csv");
    // ...
    // ...
    comparer.Compare("path/comparison-result.csv");
}

Comparar arquivos CSV protegidos por senha usando C#

Se seus arquivos CSV estiverem protegidos por senha, você só precisa fornecer a senha ao carregar esses arquivos. Não há diferença no restante do procedimento para comparar vários arquivos CSV protegidos por senha.

A seguir estão as etapas para comparar arquivos CSV protegidos por senha usando C#.

  • Prepare as opções de carregamento usando a classe LoadOptions e definindo a senha para abrir o arquivo CSV.
  • Carregue o primeiro arquivo CSV para comparar enquanto instancia a classe Comparer.
  • Adicione o segundo arquivo CSV usando o método Add apropriado.
  • Da mesma forma, adicione tantos outros arquivos CSV usando qualquer um dos métodos Add.
  • Por fim, chame o método Compare para obter a comparação de todos os arquivos CSV adicionados.

O código-fonte C# a seguir compara vários arquivos CSV protegidos por senha e gera os resultados da comparação em arquivos CSV e HTML separados.

// Comparar arquivos CSV (valores separados por vírgula) protegidos por senha usando C#

using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv", new LoadOptions(){ Password = "file1-password" }))
{
    comparer.Add("path/comma-separated-file-2.csv", new LoadOptions(){ Password = "file2-password" });
    comparer.Compare("path/comparison-result.csv");
}

Aceitar ou rejeitar alterações identificadas de arquivos CSV usando C#

Assim como o recurso do Microsoft Word, você pode implementar a opção rastrear alterações para os arquivos CSV em seus aplicativos .NET. Após a comparação de arquivos, você pode aceitar ou rejeitar cada uma das alterações identificadas. A seguir estão as etapas para comparar arquivos CSV e, em seguida, aceitar ou rejeitar as alterações identificadas.

  • Carregue a origem e adicione arquivos CSV de destino usando a classe Comparer.
  • Execute a comparação dos arquivos carregados usando o método Compare.
  • Busque as alterações identificadas usando o método GetChanges.
  • Agora você pode percorrer as alterações e definir o ComparisonAction de cada alteração.
    • Para as alterações acordadas, você pode defini-las como Aceitar.
    • Para as alterações discordantes, você pode defini-las como Rejeitar.
  • Por fim, chame o método ApplyChanges para obter o documento resultante com as alterações aplicadas.

O código-fonte C# a seguir compara dois arquivos CSV e, em seguida, aceita e rejeita as alterações de acordo.

/*
 * Aceite ou rejeite as alterações identificadas comparando arquivos CSV usando C#
 */
using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv"))
{
    comparer.Add("path/comma-separated-file-2.csv");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Rejeitando a primeira e aceitando a segunda mudança identificada.
    changes[0].ComparisonAction = ComparisonAction.Reject;
    changes[1].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/track-changes-result.csv", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });
}

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Para resumir, hoje aprendemos a comparar dois ou mais arquivos CSV usando C#. Junto com a comparação de arquivos CSV protegidos por senha, aprendemos a aceitar e rejeitar programaticamente as alterações identificadas nos aplicativos .NET.

Existem muitas outras personalizações para controlar os resultados da comparação, como definir a sensibilidade da comparação, mostrar apenas a página de resumo, ignorar lacunas e muito mais. Saiba mais sobre esses recursos na documentação.

Você pode começar a criar seus próprios aplicativos de comparação para vários formatos de documento suportados. Para dúvidas, entre em contato conosco através do fórum.

Veja também