Analisar mudanças entre versões de planilhas é uma tarefa rotineira para finanças, relatórios e fluxos de trabalho de validação de dados. GroupDocs.Comparison Cloud SDK for .NET fornece uma API poderosa que facilita a comparação de arquivos Excel em .NET sem inspeção manual. Neste guia, você verá como configurar a biblioteca, fazer upload de pastas de trabalho, chamar o endpoint REST a partir do C#, recuperar informações detalhadas sobre as alterações e ajustar finamente as opções de comparação para obter resultados precisos.

Antes de Começar: Pré-requisitos e Instalação

Antes de começar, certifique‑se de que você tem o seguinte:

  • .NET 6.0 ou posterior instalado.
  • Uma IDE como o Visual Studio 2022.
  • Uma conta do GroupDocs Cloud com ClientId e ClientSecret.
  • Acesso ao armazenamento do GroupDocs Cloud onde os arquivos Excel serão enviados.

Instale o SDK via NuGet:

dotnet add package GroupDocs.Comparison-Cloud

Baixe o pacote mais recente na página de lançamentos. Após a instalação, adicione suas credenciais no código conforme mostrado a seguir. Agora você está pronto para iniciar o fluxo de trabalho de comparação.

Guia passo a passo para comparar arquivos Excel no .NET

As etapas a seguir ilustram como comparar arquivos Excel em .NET usando o SDK.

Etapa 1: Carregar os documentos de origem e destino

Crie um objeto de configuração com suas credenciais e instancie o CompareApi.

var config = new Configuration
{
    ClientId = "YOUR_CLIENT_ID",
    ClientSecret = "YOUR_CLIENT_SECRET"
};

var compareApi = new CompareApi(config);

Passo 2: Prepare as pastas de trabalho do Excel

Defina objetos FileInfo que apontam para os arquivos XLSX de origem e destino armazenados no armazenamento do GroupDocs Cloud.

var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
var targetFile = new FileInfo { FilePath = "input/target.xlsx" };

Etapa 3: Definir Opções e Configurações de Comparação

Configure o objeto CompareOptions, incluindo configurações detalhadas de alterações.

var compareOptions = new CompareOptions
{
    SourceFile = sourceFile,
    TargetFiles = new List<FileInfo> { targetFile },
    OutputPath = "output/diff_result.xlsx",
    Settings = new Settings
    {
        ShowDeletedContent = true,
        ShowInsertedContent = true,
        ShowStyleChanges = true,
        GenerateSummaryPage = true
    }
};

Para obter uma lista completa de configurações, consulte a referência da API.

Etapa 4: Executar a Comparação e Processar os Resultados

Chame o método Compare e leia as informações básicas do resultado.

var compareResult = compareApi.Compare(compareOptions);
Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");

Etapa 5: Recuperar informações detalhadas de alterações

Se precisar de um relatório detalhado, use a solicitação GetChanges.

var changesRequest = new GetChangesRequest
{
    SourceFile = sourceFile,
    TargetFile = targetFile,
    OutputPath = "output/detailed_changes.json"
};
var detailedChanges = compareApi.GetChanges(changesRequest);
Console.WriteLine($"Detailed changes saved to: {detailedChanges.Path}");

Com estas etapas, você automatizou totalmente o processo de comparação de arquivos Excel no .NET.

Comparando Arquivos Excel Programaticamente - Exemplo de Código Completo

O código a seguir demonstra o fluxo de trabalho completo, da configuração ao tratamento do resultado.

using System;
using System.Collections.Generic;
using GroupDocs.Comparison.Cloud.Sdk.Api;
using GroupDocs.Comparison.Cloud.Sdk.Client;
using GroupDocs.Comparison.Cloud.Sdk.Model;

namespace CompareExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Set up API credentials (replace with your actual credentials)
            var config = new Configuration
            {
                ClientId = "YOUR_CLIENT_ID",
                ClientSecret = "YOUR_CLIENT_SECRET"
            };

// Initialize Compare API
            var compareApi = new CompareApi(config);

// Prepare source and target Excel files (must be uploaded to GroupDocs Cloud storage beforehand)
            var sourceFile = new FileInfo { FilePath = "input/source.xlsx" };
            var targetFile = new FileInfo { FilePath = "input/target.xlsx" };

// Define comparison options
            var compareOptions = new CompareOptions
            {
                SourceFile = sourceFile,
                TargetFiles = new List<FileInfo> { targetFile },
                OutputPath = "output/diff_result.xlsx",
                // Optional: specify that we want detailed changes for worksheets
                Settings = new Settings
                {
                    ShowDeletedContent = true,
                    ShowInsertedContent = true,
                    ShowStyleChanges = true,
                    GenerateSummaryPage = true
                }
            };

try
            {
                // Call the Compare API
                var compareResult = compareApi.Compare(compareOptions);

// Output basic result information
                Console.WriteLine($"Comparison completed. Result file: {compareResult.Path}");
                Console.WriteLine($"Number of changes detected: {compareResult.Changes?.Count ?? 0}");

// Iterate through change details
                if (compareResult.Changes != null)
                {
                    foreach (var change in compareResult.Changes)
                    {
                        Console.WriteLine("--------------------------------------------------");
                        Console.WriteLine($"Change Type   : {change.ChangeType}");
                        Console.WriteLine($"Worksheet     : {change.Worksheet}");
                        Console.WriteLine($"Cell Address  : {change.CellAddress}");
                        Console.WriteLine($"Old Value     : {change.OldValue}");
                        Console.WriteLine($"New Value     : {change.NewValue}");
                        Console.WriteLine($"Is New Row    : {change.IsNewRow}");
                        Console.WriteLine($"Is New Column : {change.IsNewColumn}");
                    }
                }

// Retrieve detailed changes via GetChanges (optional)
                var changesRequest = new GetChangesRequest
                {
                    SourceFile = sourceFile,
                    TargetFile = targetFile,
                    OutputPath = "output/detailed_changes.json"
                };
                var detailedChanges = compareApi.GetChanges(changesRequest);
                Console.WriteLine($"Detailed changes saved to: {detailedChanges.Path}");
            }
            catch (ApiException apiEx)
            {
                Console.WriteLine($"API error: {apiEx.ErrorCode} - {apiEx.Message}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Unexpected error: {ex.Message}");
            }
        }
    }
}

Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão devidamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.

Executar Comparação de Excel via REST com cURL

Você pode obter o mesmo resultado sem escrever código C# chamando a API REST diretamente.

1. Autenticar e Obter Token de Acesso

curl -X POST "https://api.groupdocs.cloud/v1.0/oauth2/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'

2. Carregar a Pasta de Trabalho de Origem

curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file?path=input/source.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "./source.xlsx"

3. Carregar a Pasta de Trabalho de Destino

curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file?path=input/target.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "./target.xlsx"

4. Execute a Comparação

curl -X POST "https://api.groupdocs.cloud/v1.0/comparison/compare" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "source_file": {"file_path":"input/source.xlsx"},
           "target_files": [{"file_path":"input/target.xlsx"}],
           "output_path":"output/diff_result.xlsx",
           "settings": {
               "show_deleted_content": true,
               "show_inserted_content": true,
               "show_style_changes": true,
               "generate_summary_page": true
           }
         }'

5. Baixe a Pasta de Trabalho de Diferença Resultante

curl -X GET "https://api.groupdocs.cloud/v1.0/storage/file?path=output/diff_result.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o diff_result.xlsx

Para obter uma lista completa de parâmetros, veja a documentação oficial da API.

Conclusão

Usando o GroupDocs.Comparison Cloud SDK for .NET você pode comparar facilmente arquivos Excel no .NET e obter uma planilha de diferenças detalhada que destaca cada modificação. A arquitetura baseada em REST do SDK permite integrar a comparação de planilhas em qualquer serviço C#, API web ou tarefa em segundo plano com esforço mínimo. Lembre‑se de adquirir uma licença adequada para uso em produção; uma licença temporária está disponível na página de licença e os detalhes completos de licenciamento estão listados no site do produto. Comece a automatizar seus fluxos de trabalho de diff de Excel hoje e elimine erros de inspeção manual.

Perguntas Frequentes

  • Como posso comparar arquivos Excel em .NET sem escrever muito código?
    O SDK abstrai o trabalho pesado. Você só precisa configurar as credenciais, apontar para os dois arquivos XLSX e chamar compareApi.Compare. A biblioteca retorna um arquivo de diff e uma lista de objetos de alteração.

  • Qual formato o resultado do diff usa?
    Por padrão, o resultado é salvo como uma pasta de trabalho XLSX, preservando o layout original enquanto aplica marcadores visuais para exclusões, inserções e alterações de estilo.

  • É possível comparar pastas de trabalho do Excel protegidas?
    Sim. Forneça a senha na propriedade Password do objeto FileInfo. A API desbloqueará a pasta de trabalho antes de executar a comparação.

  • Preciso de uma licença para desenvolvimento e teste?
    Uma licença temporária pode ser obtida na página de licença. Para implantações de produção, você deve adquirir uma licença completa conforme descrito na página do produto.

Leia Mais