将 Microsoft Project 的项目计划转换为 Excel 电子表格是报告和数据分析中的常见需求。 Aspose.CAD Cloud SDK for Node.js 使开发人员能够在 Node.JS 中仅用几行代码将 MPP 转换为 XLSX。 在本教程中,您将了解如何设置库、将 MPP 文件上传到云存储、生成 XLSX 任务表报告并检索结果。 本指南还为 REST API 用户提供了等效的 cURL 命令。 完成后,您将能够在 Node.JS 应用程序中集成 MPP 到 XLSX 的转换。
完整工作示例:在 Node.JS 中将 MPP 转换为 XLSX
此示例演示如何上传 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 reference。
总结
您现在拥有一种完整的、可用于生产的 在 Node.JS 中将 MPP 转换为 XLSX 方法,使用 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 时有哪些报告类型可用?
API 支持 TaskSheet、GanttChart、ResourceSheet 等。选择不同的 reportType 会更改生成的 XLSX 文件的结构。
在转换期间,我该如何处理大型 MPP 文件?
使用存储 API 将大文件分块上传,监控转换状态,并流式传输 XLSX 结果,以避免高内存消耗。