Convertir los cronogramas de proyectos de Microsoft Project a hojas de cálculo de Excel es una necesidad frecuente para la generación de informes y el análisis de datos. Aspose.CAD Cloud SDK for Node.js permite a los desarrolladores convertir MPP a XLSX en Node.JS con solo unas pocas líneas de código. En este tutorial verás cómo configurar la biblioteca, cargar un archivo MPP en el almacenamiento en la nube, generar un informe de hoja de tareas XLSX y recuperar el resultado. La guía también proporciona comandos cURL equivalentes para los usuarios de la API REST. Al final estarás listo para integrar la conversión de MPP a XLSX en tus aplicaciones Node.JS.
Ejemplo completo de funcionamiento para convertir MPP a XLSX en Node.JS
Este ejemplo muestra cómo cargar un archivo MPP, solicitar un informe de hoja de tareas en formato XLSX y descargar el resultado utilizando la API Aspose.Tasks Cloud.
const path = require('path');
const fs = require('fs');
const {
Configuration,
ApiClient,
TasksApi,
StorageApi
} = require('asposetaskscloud');
(async () => {
// -------------------- Configuration --------------------
const config = new Configuration({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET'
// baseUrl can be set here if needed
});
const apiClient = new ApiClient(config);
const tasksApi = new TasksApi(apiClient);
const storageApi = new StorageApi(apiClient);
// -------------------- File paths --------------------
const localInputPath = path.resolve(__dirname, 'project.mpp');
const remoteFolder = 'Temp';
const remoteFileName = 'project.mpp';
const localOutputPath = path.resolve(__dirname, 'project.xlsx');
try {
// -------------------- Upload MPP to cloud storage --------------------
const fileBuffer = fs.readFileSync(localInputPath);
await storageApi.uploadFile({
path: `${remoteFolder}/${remoteFileName}`,
file: fileBuffer
});
// -------------------- Convert to XLSX (TaskSheet report) --------------------
const reportResponse = await tasksApi.getTaskReport({
name: remoteFileName,
folder: remoteFolder,
reportType: 'TaskSheet', // options: GanttChart, ResourceSheet, etc.
format: 'xlsx'
});
// -------------------- Save XLSX locally --------------------
fs.writeFileSync(localOutputPath, reportResponse.body);
console.log(`Conversion completed. XLSX saved to ${localOutputPath}`);
} catch (err) {
if (err.response && err.response.body) {
console.error('API error:', err.response.body);
} else {
console.error('Unexpected error:', err);
}
} finally {
// -------------------- Cleanup remote file --------------------
try {
await storageApi.deleteFile({ path: `${remoteFolder}/${remoteFileName}` });
} catch (cleanupErr) {
// ignore cleanup errors
}
}
})();
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.
Usando la API REST con cURL para la conversión de MPP a XLSX
A continuación se presentan los comandos cURL que realizan los mismos pasos que el código Node.js, utilizando la API REST de Aspose.Tasks Cloud.
- Obtener un token de acceso - reemplace
YOUR_CLIENT_IDyYOUR_CLIENT_SECRETcon sus credenciales.
curl -X POST "https://api.aspose.cloud/v4.0/oauth2/token?grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Cargar el archivo MPP de origen - almacene el token del paso anterior en
YOUR_ACCESS_TOKEN.
curl -X PUT "https://api.aspose.cloud/v4.0/storage/file/Temp/project.mpp" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@project.mpp"
- Solicitar el informe de hoja de tareas XLSX.
curl -X GET "https://api.aspose.cloud/v4.0/tasks/project.mpp/report?reportType=TaskSheet&format=xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o project.xlsx
- Descargar el archivo XLSX generado (el comando anterior ya lo guarda localmente, pero también puedes recuperarlo directamente).
curl -X GET "https://api.aspose.cloud/v4.0/storage/file/Temp/project.xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o project.xlsx
Para obtener más detalles sobre cada endpoint, consulte la referencia oficial de la API.
Cómo funciona la conversión de MPP a XLSX en Node.JS
La implementación se puede desglosar en los siguientes pasos:
-
Configurar autenticación - El objeto
ConfigurationcontieneclientIdyclientSecret.const config = new Configuration({ clientId: 'YOUR_CLIENT_ID', clientSecret: 'YOUR_CLIENT_SECRET' }); -
Crear clientes API -
ApiClientse instancia con la configuración y se pasa aTasksApiyStorageApi.const apiClient = new ApiClient(config); const tasksApi = new TasksApi(apiClient); const storageApi = new StorageApi(apiClient); -
Subir el archivo MPP - El archivo se lee en un búfer y se envía mediante
storageApi.uploadFile.const fileBuffer = fs.readFileSync(localInputPath); await storageApi.uploadFile({ path: `${remoteFolder}/${remoteFileName}`, file: fileBuffer }); -
Solicitar el informe XLSX - Se llama a
tasksApi.getTaskReportconreportType: 'TaskSheet'yformat: 'xlsx'.const reportResponse = await tasksApi.getTaskReport({ name: remoteFileName, folder: remoteFolder, reportType: 'TaskSheet', format: 'xlsx' }); -
Guardar el resultado localmente - El cuerpo binario de la respuesta se escribe en
project.xlsx.fs.writeFileSync(localOutputPath, reportResponse.body);
Estos pasos ilustran un flujo de trabajo PASO a PASO Convertir Archivos MPP Grandes a XLSX en Node.JS que puede adaptarse a otros tipos de informes, como GanttChart o ResourceSheet.
Requisitos y configuración para Aspose.CAD Cloud SDK
- Versión de Node.js - Asegúrese de que está ejecutando Node.js 14 o posterior.
- Instalar el SDK - Use npm para agregar el paquete a su proyecto.
El paquete está disponible en la página de descarga oficial.
npm install @asposecloud/aspose-cad-cloud - Crear una cuenta de Aspose Cloud - Obtenga
clientIdyclientSecretdel panel de Aspose Cloud. - Configurar variables de entorno (opcional pero recomendado) para mantener las credenciales fuera del código fuente.
Con estos requisitos previos satisfechos, puedes ejecutar el ejemplo de código completo que se mostró anteriormente.
Opciones y configuraciones de conversión
La API de Tasks ofrece varios parámetros que influyen en la salida:
reportType- Determina el tipo de datos exportados. Las opciones incluyenTaskSheet,GanttChart,ResourceSheet, etc. El ejemplo usaTaskSheetpara producir una lista plana de tareas en XLSX.format- Actualmente admitexlsx,pdf,html. Cambiar este valor cambia el tipo de archivo de salida.folder- Especifica la carpeta de almacenamiento en la nube donde reside el MPP de origen. Ajústalo según sea necesario para la estructura de tu proyecto.
Para obtener una lista completa de opciones, consulte la referencia de API.
Conclusión
Ahora tienes un método completo y listo para producción para convertir MPP a XLSX en Node.JS usando el Aspose.CAD Cloud SDK for Node.js. El SDK maneja la autenticación, el almacenamiento de archivos y la generación de informes, lo que te permite centrarte en integrar los datos XLSX en la lógica de tu negocio. Recuerda obtener una licencia adecuada para uso en producción; los detalles de precios están disponibles en la página del producto y puedes obtener una licencia temporal en la página de licencia temporal. ¡Feliz codificación!
Preguntas frecuentes
¿Puedo convertir MPP a XLSX en Node.JS sin usar Aspose.CAD Cloud SDK?
Aunque es posible crear un analizador personalizado, Aspose.CAD Cloud SDK for Node.js proporciona una solución probada y fiable que ahorra tiempo de desarrollo y maneja casos límite.
¿Qué tipos de informe están disponibles al convertir MPP a XLSX?
La API admite TaskSheet, GanttChart, ResourceSheet y más. Seleccionar un reportType diferente cambia la estructura del archivo XLSX generado.
¿Cómo manejo archivos MPP grandes durante la conversión?
Cargue archivos grandes en fragmentos usando la API de almacenamiento, supervise el estado de la conversión y transmita el resultado XLSX para evitar un alto consumo de memoria.