將 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 命令。
- 取得存取權杖 - 將
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 參考。
如何在 Node.JS 中將 MPP 轉換為 XLSX
實作可以分解為以下步驟:
- 設定驗證 -
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 報告 - 使用
reportType: 'TaskSheet'和format: 'xlsx'呼叫tasksApi.getTaskReport。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 帳戶 - 從 Aspose Cloud 儀表板取得
clientId與clientSecret。 - 設定環境變數(可選,但建議)以將憑證從原始碼中分離。
在滿足這些先決條件後,您可以執行前面顯示的完整程式碼範例。
轉換選項與設定
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 結果以避免高記憶體消耗。