Comparar planilhas do Excel programaticamente é uma necessidade frequente quando você precisa detectar alterações de dados, auditar revisões ou gerar relatórios. GroupDocs.Comparison Cloud SDK for .NET fornece uma poderosa biblioteca baseada em REST que facilita a comparação de arquivos Excel via REST em C#. Este guia orienta você sobre como fazer upload de arquivos, configurar opções de comparação, executar a comparação e recuperar o resultado, com exemplos de código em C# e cURL.
Compare arquivos Excel via REST em C# em 5 etapas
- Carregue o arquivo [XLSX] de origem: Use o método
StorageApi.UploadFilepara colocarsample1.xlsxno armazenamento em nuvem.
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
storageApi.UploadFile(uploadRequest1);
}
- Carregue o arquivo XLSX de destino: Repita o upload para
sample2.xlsx.
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
storageApi.UploadFile(uploadRequest2);
}
- Configure as opções de comparação: Crie um objeto
CompareOptions, defina os caminhos dos arquivos de origem e destino, especifique o caminho de saída e ajuste configurações comoGenerateSummaryPage.
var compareOptions = new CompareOptions
{
SourceFile = new FileInfo { FilePath = remoteFilePath1 },
TargetFiles = new List<FileInfo>
{
new FileInfo { FilePath = remoteFilePath2 }
},
OutputPath = remoteResultPath,
Settings = new Settings
{
GenerateSummaryPage = true,
ShowDeletedContent = true,
ShowInsertedContent = true
}
};
Consulte a referência completa da API para CompareOptions e Settings em Referência da API.
4. Execute a comparação: Chame CompareApi.CompareDocument com um CompareDocumentRequest.
var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
- Baixe o resultado e faça a limpeza: Recupere o
result.xlsxgerado, salve-o localmente e, opcionalmente, exclua os arquivos remotos.
var downloadRequest = new DownloadFileRequest(compareResult.Path);
using (var resultStream = storageApi.DownloadFile(downloadRequest))
using (var fileStream = new FileStream(localResultPath, FileMode.Create, FileAccess.Write))
{
resultStream.CopyTo(fileStream);
}
// Clean up
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath1));
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath2));
storageApi.DeleteFile(new DeleteFileRequest(remoteResultPath));
Exemplo completo de código: comparar arquivos Excel via REST em C# usando GroupDocs.Comparison
Este exemplo demonstra como fazer upload de dois arquivos XLSX, compará‑los e baixar o resultado destacado.
using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Comparison.Cloud.Sdk.Api;
using GroupDocs.Comparison.Cloud.Sdk.Client;
using GroupDocs.Comparison.Cloud.Sdk.Model;
using GroupDocs.Comparison.Cloud.Sdk.Model.Requests;
namespace CompareExcelFilesExample
{
class Program
{
static void Main(string[] args)
{
// Configuration – replace with your actual credentials
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
// APIs
var compareApi = new CompareApi(config);
var storageApi = new StorageApi(config);
// Local and remote file names
string localFilePath1 = "sample1.xlsx";
string localFilePath2 = "sample2.xlsx";
string remoteFilePath1 = "sample1.xlsx";
string remoteFilePath2 = "sample2.xlsx";
string remoteResultPath = "result.xlsx";
string localResultPath = "result.xlsx";
// Upload first Excel file
using (var stream1 = new FileStream(localFilePath1, FileMode.Open, FileAccess.Read))
{
var uploadRequest1 = new UploadFileRequest(remoteFilePath1, stream1);
storageApi.UploadFile(uploadRequest1);
}
// Upload second Excel file
using (var stream2 = new FileStream(localFilePath2, FileMode.Open, FileAccess.Read))
{
var uploadRequest2 = new UploadFileRequest(remoteFilePath2, stream2);
storageApi.UploadFile(uploadRequest2);
}
// Prepare comparison options
var compareOptions = new CompareOptions
{
SourceFile = new FileInfo { FilePath = remoteFilePath1 },
TargetFiles = new List<FileInfo>
{
new FileInfo { FilePath = remoteFilePath2 }
},
OutputPath = remoteResultPath,
Settings = new Settings
{
// Example: show changes in a new sheet
GenerateSummaryPage = true,
ShowDeletedContent = true,
ShowInsertedContent = true
}
};
// Execute comparison
var compareRequest = new CompareDocumentRequest(compareOptions);
var compareResult = compareApi.CompareDocument(compareRequest);
// Download the result file
var downloadRequest = new DownloadFileRequest(compareResult.Path);
using (var resultStream = storageApi.DownloadFile(downloadRequest))
using (var fileStream = new FileStream(localResultPath, FileMode.Create, FileAccess.Write))
{
resultStream.CopyTo(fileStream);
}
// Optional: clean up remote files
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath1));
storageApi.DeleteFile(new DeleteFileRequest(remoteFilePath2));
storageApi.DeleteFile(new DeleteFileRequest(remoteResultPath));
Console.WriteLine("Comparison completed. Result saved to " + localResultPath);
}
}
}
Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivos e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão instaladas corretamente 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.
Chamando a API REST de Comparação com cURL
Abaixo está um fluxo de trabalho cURL que realiza a mesma operação sem escrever código C#. Substitua os valores de espaço reservado pelas suas credenciais reais e pelos nomes dos arquivos.
Obtenha um token de acesso
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \ -H "Content-Type: application/json" \ -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'Carregue o arquivo XLSX de origem
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/sample1.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \ --data-binary "@sample1.xlsx"Carregue o arquivo XLSX de destino
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/sample2.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" \ --data-binary "@sample2.xlsx"Execute a comparação
curl -X POST "https://api.groupdocs.cloud/v2.0/comparison/compare" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source_file": {"file_path": "sample1.xlsx"}, "target_files": [{"file_path": "sample2.xlsx"}], "output_path": "result.xlsx", "settings": { "generate_summary_page": true, "show_deleted_content": true, "show_inserted_content": true } }'Baixe o resultado
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/result.xlsx" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -o result.xlsx
Para obter uma lista completa de endpoints e parâmetros, veja a documentação oficial da API.
Pré-requisitos e Configuração
- Instale o pacote .NET via NuGet:
dotnet add package GroupDocs.Comparison-Cloud
- Certifique-se de que possui uma conta válida do GroupDocs Cloud e obtenha seu Client Id e Client Secret no painel.
- .NET 6.0 ou posterior é necessário.
Você pode baixar a biblioteca mais recente na página de download.
Ajustando Configurações de Comparação
O objeto Settings dentro de CompareOptions permite controlar a saída. Ajustes comuns incluem:
- GenerateSummaryPage - adiciona uma planilha de resumo com estatísticas de alterações.
- ShowDeletedContent - destaca as células que foram removidas.
- ShowInsertedContent - destaca as células recém adicionadas.
Essas propriedades já são usadas no exemplo de código acima. Para opções adicionais, como proteção Password ou StyleChangeDetection, consulte a Referência da API.
Conclusão
Comparar arquivos Excel via REST em C# torna-se simples com o GroupDocs.Comparison Cloud SDK for .NET. Seguindo as etapas, você pode fazer upload de arquivos XLSX, configurar configurações detalhadas de comparação, executar a comparação e recuperar uma pasta de trabalho de resultado que marca claramente as diferenças. Lembre-se de proteger suas credenciais de API, respeitar os limites de tamanho de arquivo e usar uma licença temporária para desenvolvimento. Quando estiver pronto para produção, adquira uma licença completa na página de preços para desbloquear uso ilimitado.
FAQs
Como comparo arquivos Excel via REST em C# usando GroupDocs.Comparison?
Use o SDK para enviar dois arquivos XLSX, definaCompareOptions, chameCompareDocumente baixe o arquivo resultante. O fluxo completo é ilustrado nas seções de código e cURL acima.Qual método de autenticação a API REST requer?
A API usa OAuth 2.0 com seu client‑id e client‑secret para obter um token de acesso, que deve ser enviado no cabeçalhoAuthorization: Bearerpara cada requisição.Posso personalizar quais alterações são destacadas no resultado da comparação?
Sim. Ajuste o objetoSettings(por exemplo,GenerateSummaryPage,ShowDeletedContent,ShowInsertedContent) para controlar a aparência das diferenças.É uma licença temporária suficiente para testes?
Uma licença temporária da página de licença temporária funciona para desenvolvimento e teste. Para implantações de produção, adquira uma licença completa.
