Преобразование графиков проектов из 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.

  1. Получить токен доступа - замените 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"
  1. Загрузите исходный файл 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"
  1. Запросить 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
  1. Скачайте сгенерированный файл 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

Реализация может быть разбита на следующие шаги:

  1. Настройка аутентификации - Объект Configuration содержит clientId и clientSecret.

    const config = new Configuration({
        clientId: 'YOUR_CLIENT_ID',
        clientSecret: 'YOUR_CLIENT_SECRET'
    });
    
  2. Создание API‑клиентов - ApiClient создаётся с конфигурацией и передаётся в TasksApi и StorageApi.

    const apiClient = new ApiClient(config);
    const tasksApi = new TasksApi(apiClient);
    const storageApi = new StorageApi(apiClient);
    
  3. Загрузка файла MPP - Файл читается в буфер и отправляется через storageApi.uploadFile.

    const fileBuffer = fs.readFileSync(localInputPath);
    await storageApi.uploadFile({ path: `${remoteFolder}/${remoteFileName}`, file: fileBuffer });
    
  4. Запрос XLSX‑отчёта - Вызывается tasksApi.getTaskReport с параметрами reportType: 'TaskSheet' и format: 'xlsx'.

    const reportResponse = await tasksApi.getTaskReport({
        name: remoteFileName,
        folder: remoteFolder,
        reportType: 'TaskSheet',
        format: 'xlsx'
    });
    
  5. Сохранение результата локально - Бинарное тело ответа записывается в project.xlsx.

    fs.writeFileSync(localOutputPath, reportResponse.body);
    

Эти шаги иллюстрируют ШАГ за ШАГОМ Преобразование больших файлов MPP в XLSX в Node.JS рабочий процесс, который можно адаптировать для других типов отчетов, таких как GanttChart или ResourceSheet.

Предварительные требования и настройка Aspose.CAD Cloud SDK

  1. Node.js версия – Убедитесь, что вы используете Node.js 14 или более новую версию.
  2. Установите SDK – Используйте npm, чтобы добавить пакет в ваш проект.
    npm install @asposecloud/aspose-cad-cloud
    
    Пакет доступен на официальной странице загрузки.
  3. Создайте аккаунт Aspose Cloud – Получите clientId и clientSecret из панели управления Aspose Cloud.
  4. Настройте переменные окружения (необязательно, но рекомендуется), чтобы хранить учетные данные вне исходного кода.

При выполнении этих предварительных условий вы можете запустить полный пример кода, показанный ранее.

Параметры и настройки конвертации

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 потоково, чтобы избежать высокого потребления памяти.

Читать далее