Преобразование графиков проектов из Microsoft Project в электронные таблицы Excel часто требуется для отчетности и анализа данных. Aspose.CAD Cloud SDK for Node.js позволяет разработчикам конвертировать MPP в XLSX в Node.JS с помощью всего нескольких строк кода. В этом руководстве вы увидите, как настроить библиотеку, загрузить файл MPP в облачное хранилище, создать отчет листа задач в формате XLSX и получить результат. Руководство также предоставляет эквивалентные команды cURL для пользователей REST API. К концу вы будете готовы интегрировать преобразование MPP в XLSX в свои приложения Node.JS.
Полный рабочий пример конвертации MPP в XLSX в Node.JS
В этом примере демонстрируется, как загрузить файл MPP, запросить отчёт листа задач в формате XLSX и загрузить результат, используя Aspose.Tasks Cloud API.
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
}
}
})();
Примечание: Этот пример кода демонстрирует базовый функционал. Прежде чем использовать его в вашем проекте, убедитесь, что обновили все пути к файлам и значения конфигурации в соответствии с вашей реальной средой, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.
Использование REST API с cURL для преобразования MPP в XLSX
Ниже приведены команды cURL, которые выполняют те же шаги, что и код Node.js, используя REST API Aspose.Tasks Cloud.
- Получить токен доступа - замените
YOUR_CLIENT_IDиYOUR_CLIENT_SECRETвашими учетными данными.
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"
- Загрузите исходный файл MPP - сохраните токен из предыдущего шага в
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"
- Запросить 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
- Скачайте сгенерированный файл XLSX (предыдущая команда уже сохраняет его локально, но вы также можете получить его напрямую).
curl -X GET "https://api.aspose.cloud/v4.0/storage/file/Temp/project.xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o project.xlsx
Для получения более подробной информации о каждом конечном пункте, см. официальную справку API.
Как работает конвертация MPP в XLSX в Node.JS
Реализация может быть разбита на следующие шаги:
-
Настройка аутентификации - Объект
ConfigurationсодержитclientIdиclientSecret.const config = new Configuration({ clientId: 'YOUR_CLIENT_ID', clientSecret: 'YOUR_CLIENT_SECRET' }); -
Создание API‑клиентов -
ApiClientсоздаётся с конфигурацией и передаётся вTasksApiиStorageApi.const apiClient = new ApiClient(config); const tasksApi = new TasksApi(apiClient); const storageApi = new StorageApi(apiClient); -
Загрузка файла MPP - Файл читается в буфер и отправляется через
storageApi.uploadFile.const fileBuffer = fs.readFileSync(localInputPath); await storageApi.uploadFile({ path: `${remoteFolder}/${remoteFileName}`, file: fileBuffer }); -
Запрос XLSX‑отчёта - Вызывается
tasksApi.getTaskReportс параметрамиreportType: 'TaskSheet'иformat: 'xlsx'.const reportResponse = await tasksApi.getTaskReport({ name: remoteFileName, folder: remoteFolder, reportType: 'TaskSheet', format: 'xlsx' }); -
Сохранение результата локально - Бинарное тело ответа записывается в
project.xlsx.fs.writeFileSync(localOutputPath, reportResponse.body);
Эти шаги иллюстрируют ШАГ за ШАГОМ Преобразование больших файлов MPP в XLSX в Node.JS рабочий процесс, который можно адаптировать для других типов отчетов, таких как GanttChart или ResourceSheet.
Предварительные требования и настройка Aspose.CAD Cloud SDK
- Node.js версия – Убедитесь, что вы используете Node.js 14 или более новую версию.
- Установите SDK – Используйте npm, чтобы добавить пакет в ваш проект.
Пакет доступен на официальной странице загрузки.
npm install @asposecloud/aspose-cad-cloud - Создайте аккаунт Aspose Cloud – Получите
clientIdиclientSecretиз панели управления Aspose Cloud. - Настройте переменные окружения (необязательно, но рекомендуется), чтобы хранить учетные данные вне исходного кода.
При выполнении этих предварительных условий вы можете запустить полный пример кода, показанный ранее.
Параметры и настройки конвертации
API задач предлагает несколько параметров, которые влияют на вывод:
reportType– Определяет тип экспортируемых данных. Варианты включаютTaskSheet,GanttChart,ResourceSheetи т.д. В примере используетсяTaskSheetдля создания плоского списка задач в XLSX.format– В настоящее время поддерживаетxlsx,pdf,html. Изменение этого значения переключает тип выходного файла.folder– Указывает папку облачного хранилища, где находится исходный файл MPP. При необходимости скорректируйте её в соответствии со структурой вашего проекта.
Для полного списка параметров обратитесь к справочнику API.
Подведение итогов
Теперь у вас есть полностью готовый к использованию в продакшене метод конвертировать MPP в XLSX в Node.JS с использованием Aspose.CAD Cloud SDK for Node.js. SDK обрабатывает аутентификацию, хранение файлов и генерацию отчетов, позволяя вам сосредоточиться на интеграции данных XLSX в вашу бизнес‑логику. Не забудьте получить соответствующую лицензию для использования в продакшене; детали ценообразования доступны на странице продукта, а временную лицензию можно получить на страница временной лицензии. Удачной разработки!
Часто задаваемые вопросы
Могу ли я конвертировать MPP в XLSX в Node.JS без использования Aspose.CAD Cloud SDK?
Пока пользовательский парсер возможен, Aspose.CAD Cloud SDK for Node.js предоставляет проверенное, надёжное решение, которое экономит время разработки и обрабатывает граничные случаи.
Какие типы отчетов доступны при конвертации MPP в XLSX?
API поддерживает TaskSheet, GanttChart, ResourceSheet и другие. Выбор другого reportType изменяет структуру сгенерированного файла XLSX.
Как обрабатывать большие файлы MPP при конвертации?
Загружайте большие файлы частями с помощью API хранилища, отслеживайте статус конвертации и передавайте результат XLSX потоково, чтобы избежать высокого потребления памяти.