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 chamarcompareApi.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 propriedadePassworddo objetoFileInfo. 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.
