Automatizar a transformação de dados estruturados em documentos polidos é uma necessidade frequente para serviços de backend. Aspose.Cells Cloud SDK for Node.js permite que os desenvolvedores trabalhem com pastas de trabalho do Excel e as convertam para vários formatos por meio de uma poderosa API REST. Neste guia, você aprenderá como importar dados XML para PDF usando o SDK, cobrindo tudo, desde autenticação até upload de arquivos, mapeamento XML e geração de PDF.
Pré-requisitos e Configuração
Antes de começar, certifique‑se de que você tem o seguinte:
- Node.js 14 ou superior instalado na sua máquina.
- Uma conta Aspose Cloud com ID do cliente e segredo do cliente.
- Acesso a um terminal ou IDE onde você pode executar scripts Node.js.
Instale o Aspose.Cells Cloud SDK para Node.js:
npm install asposecellscloud
Em seguida, configure suas credenciais de autenticação. O trecho a seguir foi retirado diretamente da implementação de referência:
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);
Você também precisará baixar o pacote SDK da página oficial de lançamentos: Aspose.Cells Cloud SDK for Node.js Download. Com os pré‑requisitos em vigor, podemos passar para a implementação real.
Importar Dados XML para PDF em Node.js: Guia Passo a Passo
Etapa 1: Carregar Módulos Necessários e Criar Cliente API
Primeiro, importe os módulos necessários e instancie o cliente da API.
const fs = require('fs');
const path = require('path');
const { CellsApi, Configuration, ApiClient } = require('asposecellscloud');
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);
Etapa 2: Definir Função Auxiliar para Upload de Arquivo
Crie uma função reutilizável que faça upload de um arquivo local para o Aspose Cloud storage.
async function uploadFile(localFilePath, remoteFileName) {
const fileContent = fs.readFileSync(localFilePath);
await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}
Etapa 3: Carregar a Pasta de Trabalho e Arquivos XML
Carregue o modelo do Excel e o arquivo de dados XML na pasta Temp no armazenamento em nuvem.
await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);
Etapa 4: Importar Dados XML na Planilha
Mapeie o arquivo XML na planilha de destino. Este é o núcleo do fluxo de trabalho de importar dados XML para PDF.
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
Etapa 5: Converter a Pasta de Trabalho Atualizada para PDF e Baixar
Finalmente, salve a pasta de trabalho como PDF e recupere o arquivo.
const remotePdfPath = `${remoteFolder}/${outputPdfName}`;
await cellsApi.saveWorkbook(workbookName, 'pdf', remotePdfPath, remoteFolder);
const downloadResponse = await cellsApi.downloadFile(remotePdfPath);
fs.writeFileSync(path.join(localFolder, outputPdfName), downloadResponse.body);
Com estas etapas concluídas, os dados XML são importados com sucesso e o PDF resultante está pronto para uso.
Exemplo de Código Completo: Importar Dados XML para PDF com Comentários Detalhados
O código a seguir demonstra o processo completo de ponta a ponta.
const fs = require('fs');
const path = require('path');
const { CellsApi, Configuration, ApiClient } = require('asposecellscloud');
// ---- Configuration ---------------------------------------------------------
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);
// ---- File definitions -------------------------------------------------------
const localFolder = __dirname;
const remoteFolder = 'Temp'; // folder in Aspose Cloud storage
const workbookName = 'template.xlsx'; // existing workbook template
const xmlDataName = 'data.xml'; // XML file containing data
const outputPdfName = 'result.pdf'; // final PDF name
// ---- Helper functions -------------------------------------------------------
async function uploadFile(localFilePath, remoteFileName) {
const fileContent = fs.readFileSync(localFilePath);
await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}
async function importXml() {
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
}
async function convertToPdf() {
const remotePdfPath = `${remoteFolder}/${outputPdfName}`;
await cellsApi.saveWorkbook(workbookName, 'pdf', remotePdfPath, remoteFolder);
const downloadResponse = await cellsApi.downloadFile(remotePdfPath);
fs.writeFileSync(path.join(localFolder, outputPdfName), downloadResponse.body);
}
// ---- Main execution ---------------------------------------------------------
(async () => {
try {
// Upload required files to Aspose Cloud storage
await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);
// Import XML data into the workbook
await importXml();
// Convert the updated workbook to PDF and download locally
await convertToPdf();
console.log('XML data imported and PDF generated successfully.');
} catch (err) {
console.error('Error:', err.response ? err.response.text : err.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 arquivos e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão corretamente 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.
Conversão de XML para PDF usando cURL e a API REST
A seguir, um fluxo de trabalho baseado em cURL que executa as mesmas operações sem escrever nenhum código Node.js.
- Obter um token de acesso
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Carregue o modelo Excel
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/template.xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@template.xlsx"
- Carregue o arquivo de dados XML
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/data.xml" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@data.xml"
- Importar XML na planilha
curl -X POST "https://api.aspose.cloud/v3.0/cells/template.xlsx/worksheets/Sheet1/importxml" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"xmlFile": "Temp/data.xml",
"xmlMapIndex": 0,
"importDataOnly": true,
"importDataOnlySpecified": true
}'
- Converter a pasta de trabalho para PDF
curl -X POST "https://api.aspose.cloud/v3.0/cells/template.xlsx/save?format=pdf&outPath=Temp/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
- Baixe o PDF gerado
curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
Para obter uma lista completa de parâmetros e opções adicionais, consulte a referência da API.
Ajuste fino das opções de XML para PDF
A operação de importação oferece várias opções que permitem controlar como os dados XML são mesclados:
- importDataOnly - Quando definido como
true, apenas as linhas de dados são importadas, deixando a formatação existente intacta. - importDataOnlySpecified - Deve ser definido como
truejuntamente comimportDataOnlypara ativar a opção. - xmlMapIndex - Seleciona qual mapa XML (se houver múltiplos definidos) deve ser usado para a importação.
Essas opções já foram demonstradas no objeto importXmlRequest usado anteriormente:
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
Você também pode ajustar configurações específicas de PDF, como tamanho da página, orientação e qualidade da imagem, passando um objeto PdfSaveOptions para o método saveWorkbook. Consulte a referência da API para a lista completa de opções disponíveis.
Conclusão
Seguindo este tutorial, você agora tem uma solução completa para import XML data to PDF usando o Aspose.Cells Cloud SDK for Node.js. A abordagem combina chamadas simples ao SDK com comandos cURL opcionais, oferecendo flexibilidade caso você prefira uma implementação full‑stack Node.js ou uma integração REST leve. Lembre‑se de proteger suas credenciais de cliente e considere aplicar uma licença temporária ou paga para cargas de trabalho de produção. Você pode obter uma licença temporária na página de licença temporária e explorar opções de preço na página do produto. Feliz codificação!
Perguntas Frequentes
-
Como funciona a importação de dados XML para PDF com Aspose.Cells Cloud SDK for Node.js?
O SDK envia seu modelo Excel e o arquivo XML para o Aspose Cloud storage, mapeia os dados XML em uma planilha e, em seguida, salva a pasta de trabalho como PDF. Consulte o Aspose.Cells Cloud SDK for Node.js para referências detalhadas da API. -
Posso personalizar a saída PDF ao usar importação de dados XML para PDF?
Sim, o métodosaveWorkbookaceita opções específicas de formato, como orientação da página, qualidade da imagem e nível de compressão. Ajuste essas configurações no payload da solicitação conforme descrito na referência da API. -
Qual método de autenticação é necessário para as chamadas REST?
Todas as solicitações devem incluir um token de acesso OAuth 2.0 obtido no endpoint de autenticação da Aspose Cloud. Use seu ID de cliente e segredo de cliente para solicitar um token antes de invocar qualquer API. -
Existe uma maneira de testar o processo sem afetar os dados de produção?
Você pode usar a licença temporária fornecida na página de licença temporária para executar o código em um ambiente não‑produção.