تبدیل برنامه‌های زمان‌بندی پروژه از 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 را با استفاده از Aspose.Tasks Cloud REST API انجام می‌دهند.

  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 را به‌صورت جریان (stream) دریافت کنید تا از مصرف بالای حافظه جلوگیری شود.

بیشتر بخوانید