將 Microsoft Project 的專案排程轉換為 Excel 試算表是報告與資料分析中常見的需求。 Aspose.CAD Cloud SDK for Node.js 讓開發人員只需幾行程式碼即可在 Node.JS 中將 MPP 轉換為 XLSX。在本教學中,您將了解如何設定此函式庫、將 MPP 檔案上傳至雲端儲存、產生 XLSX 任務表報告,並取得結果。指南亦提供給 REST API 使用者的等效 cURL 指令。完成後,您即可在 Node.JS 應用程式中整合 MPP 到 XLSX 的轉換功能。

完整工作範例:將 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

以下是使用 Aspose.Tasks Cloud REST API,執行與 Node.js 程式碼相同步驟的 cURL 命令。

  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 參考。

如何在 Node.JS 中將 MPP 轉換為 XLSX

實作可以分解為以下步驟:

  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 報告 - 使用 reportType: 'TaskSheet' 和 format: 'xlsx' 呼叫 tasksApi.getTaskReport。
    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 帳戶 - 從 Aspose Cloud 儀表板取得 clientId 與 clientSecret。
  4. 設定環境變數(可選,但建議)以將憑證從原始碼中分離。

在滿足這些先決條件後,您可以執行前面顯示的完整程式碼範例。

轉換選項與設定

Tasks 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 資料整合到業務邏輯中。請記得為生產環境取得適當的授權;產品頁面上提供價格資訊,您也可以從 臨時授權頁面 獲取臨時授權。祝開發愉快!

常見問題

我可以在 Node.JS 中不使用 Aspose.CAD Cloud SDK 轉換 MPP 為 XLSX 嗎?
雖然可以自行編寫解析器,但 Aspose.CAD Cloud SDK for Node.js 提供了經過測試且可靠的解決方案,能節省開發時間並處理各種邊緣情況。

將 MPP 轉換為 XLSX 時有哪些報告類型可用?
The API supports TaskSheet, GanttChart, ResourceSheet, and more. Selecting a different reportType changes the structure of the generated XLSX file.

在轉換過程中,我該如何處理大型 MPP 檔案?
使用 Storage API 分塊上傳大型檔案,監控轉換狀態,並串流 XLSX 結果以避免高記憶體消耗。

閱讀更多