Automatizar la transformación de datos estructurados en documentos pulidos es una necesidad frecuente para los servicios de backend. Aspose.Cells Cloud SDK for Node.js permite a los desarrolladores trabajar con libros de Excel y convertirlos a varios formatos mediante una potente API REST. En esta guía aprenderá cómo importar datos XML a PDF usando el SDK, cubriendo todo desde la autenticación hasta la carga de archivos, el mapeo XML y la generación de PDF.
Requisitos y configuración
Antes de comenzar, asegúrese de tener lo siguiente:
- Node.js 14 o superior instalado en su máquina.
- Una cuenta Aspose Cloud con ID de cliente y secreto de cliente.
- Acceso a una terminal o IDE donde pueda ejecutar scripts de Node.js.
Instale el Aspose.Cells Cloud SDK para Node.js:
npm install asposecellscloud
A continuación, configure sus credenciales de autenticación. El siguiente fragmento se toma directamente de la implementación de referencia:
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);
También necesitará descargar el paquete SDK desde la página oficial de lanzamientos: Aspose.Cells Cloud SDK for Node.js Download. Con los requisitos previos en su lugar, podemos pasar a la implementación real.
Importar datos XML a PDF en Node.js: Guía paso a paso
Paso 1: Cargar los módulos necesarios y crear el cliente API
Primero, importe los módulos necesarios y cree una instancia del cliente 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);
Paso 2: Definir función auxiliar para carga de archivos
Cree una función reutilizable que cargue un archivo local en el almacenamiento de Aspose Cloud.
async function uploadFile(localFilePath, remoteFileName) {
const fileContent = fs.readFileSync(localFilePath);
await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}
Paso 3: Cargar el libro de trabajo y los archivos XML
Cargue la plantilla de Excel y el archivo de datos XML en la carpeta Temp del almacenamiento en la nube.
await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);
Paso 4: Importar datos XML en la hoja de cálculo
Mapea el archivo XML a la hoja de cálculo de destino. Esto es el núcleo del flujo de trabajo de importar datos XML a PDF.
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
Paso 5: Convertir el libro de trabajo actualizado a PDF y descargar
Finalmente, guarde el libro de trabajo como PDF y recupere el archivo.
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);
Con estos pasos completados, los datos XML se importan correctamente y el PDF resultante está listo para su uso.
Ejemplo de código completo: Importar datos XML a PDF con comentarios detallados
El siguiente código demuestra el proceso completo de extremo a extremo.
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 ejemplo de código muestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar cualquier ruta de archivo y valores de configuración para que coincidan con su entorno real, verifique que todas las dependencias requeridas estén correctamente instaladas y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.
Conversión de XML a PDF usando cURL y la API REST
A continuación se muestra un flujo de trabajo basado en cURL que realiza las mismas operaciones sin escribir ningún código Node.js.
- Obtener un token de acceso
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"
- Cargar la plantilla de 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"
- Cargar el archivo XML de datos
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 en la hoja de cálculo
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
}'
- Convertir el libro de trabajo a 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"
- Descargar el PDF generado
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 obtener una lista completa de parámetros y opciones adicionales, consulte la referencia de API.
Ajuste fino de opciones XML a PDF
La operación de importación ofrece varias banderas que le permiten controlar cómo se fusionan los datos XML:
- importDataOnly - Cuando se establece en
true, solo se importan las filas de datos, dejando el formato existente sin cambios. - importDataOnlySpecified - Debe establecerse en
truejunto conimportDataOnlypara activar la opción. - xmlMapIndex - Selecciona cuál mapa XML (si se definen varios) se debe usar para la importación.
Estas opciones ya se demuestran en el objeto importXmlRequest usado anteriormente:
const importXmlRequest = {
xmlFile: `${remoteFolder}/${xmlDataName}`,
xmlMapIndex: 0,
importDataOnly: true,
importDataOnlySpecified: true
};
También puede ajustar la configuración específica de PDF, como el tamaño de página, la orientación y la calidad de imagen, pasando un objeto PdfSaveOptions al método saveWorkbook. Consulte la referencia de API para obtener la lista completa de opciones disponibles.
Conclusión
Al seguir este tutorial, ahora tienes una solución completa para importar datos XML a PDF usando Aspose.Cells Cloud SDK for Node.js. El enfoque combina llamadas sencillas al SDK con comandos cURL opcionales, brindándote flexibilidad ya sea que prefieras una implementación full‑stack de Node.js o una integración REST ligera. Recuerda asegurar tus credenciales de cliente y considerar aplicar una licencia temporal o de pago para cargas de trabajo de producción. Puedes obtener una licencia temporal en la página de licencia temporal y explorar opciones de precios en la página del producto. ¡Feliz codificación!
FAQs
-
¿Cómo funciona la importación de datos XML a PDF con Aspose.Cells Cloud SDK for Node.js?
El SDK carga su plantilla de Excel y el archivo XML en el almacenamiento de Aspose Cloud, asigna los datos XML a una hoja de cálculo y luego guarda el libro de trabajo como PDF. Consulte el Aspose.Cells Cloud SDK for Node.js para obtener referencias detalladas de la API. -
¿Puedo personalizar la salida PDF al usar la importación de datos XML a PDF?
Sí, el métodosaveWorkbookacepta opciones específicas de formato como la orientación de página, la calidad de imagen y el nivel de compresión. Ajuste estas configuraciones en la carga útil de la solicitud como se describe en la referencia API. -
¿Qué método de autenticación se requiere para las llamadas REST?
Todas las solicitudes deben incluir un token de acceso OAuth 2.0 obtenido del endpoint de autenticación de Aspose Cloud. Utilice su ID de cliente y su secreto de cliente para solicitar un token antes de invocar cualquier API. -
¿Hay alguna manera de probar el proceso sin afectar los datos de producción?
Puede usar la licencia temporal proporcionada en la página de licencia temporal para ejecutar el código en un entorno que no sea de producción.