Chuyển đổi lịch trình dự án từ Microsoft Project sang bảng tính Excel là một nhu cầu thường gặp cho việc báo cáo và phân tích dữ liệu. Aspose.CAD Cloud SDK for Node.js cho phép các nhà phát triển chuyển đổi MPP sang XLSX trong Node.JS chỉ với vài dòng mã. Trong hướng dẫn này, bạn sẽ thấy cách thiết lập thư viện, tải lên tệp MPP lên lưu trữ đám mây, tạo báo cáo bảng công việc XLSX và lấy kết quả. Hướng dẫn cũng cung cấp các lệnh cURL tương đương cho người dùng REST API. Khi hoàn thành, bạn sẽ sẵn sàng tích hợp chuyển đổi MPP sang XLSX vào các ứng dụng Node.JS của mình.

Ví dụ Hoạt Động Đầy Đủ để Chuyển đổi MPP sang XLSX trong Node.JS

Ví dụ này minh họa cách tải lên tệp MPP, yêu cầu báo cáo bảng công việc dạng XLSX và tải xuống kết quả bằng 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
        }
    }
})();

Note: Ví dụ mã này trình bày chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.

Sử dụng REST API với cURL để chuyển đổi MPP sang XLSX

Dưới đây là các lệnh cURL thực hiện các bước tương tự như mã Node.js, sử dụng Aspose.Tasks Cloud REST API.

  1. Nhận token truy cập - thay thế YOUR_CLIENT_ID và YOUR_CLIENT_SECRET bằng thông tin xác thực của bạn.
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. Tải lên tệp MPP nguồn - lưu token từ bước trước vào 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. Yêu cầu báo cáo bảng công việc 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. Tải xuống tệp XLSX đã tạo (lệnh trước đã lưu nó cục bộ, nhưng bạn cũng có thể truy xuất nó trực tiếp).
curl -X GET "https://api.aspose.cloud/v4.0/storage/file/Temp/project.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o project.xlsx

Để biết thêm chi tiết về mỗi endpoint, xem tài liệu tham chiếu API chính thức.

Cách Chuyển Đổi MPP sang XLSX trong Node.JS Hoạt Động

Việc triển khai có thể được chia thành các bước sau:

  1. Cấu hình xác thực - Đối tượng Configuration chứa clientId và clientSecret.
const config = new Configuration({
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET'
});
  1. Tạo client API - ApiClient được khởi tạo với cấu hình và được truyền cho TasksApi và StorageApi.
const apiClient = new ApiClient(config);
const tasksApi = new TasksApi(apiClient);
const storageApi = new StorageApi(apiClient);
  1. Tải lên tệp MPP - Tệp được đọc vào bộ đệm và gửi qua storageApi.uploadFile.
const fileBuffer = fs.readFileSync(localInputPath);
await storageApi.uploadFile({ path: `${remoteFolder}/${remoteFileName}`, file: fileBuffer });
  1. Yêu cầu báo cáo XLSX - Gọi tasksApi.getTaskReport với reportType: 'TaskSheet' và format: 'xlsx'.
const reportResponse = await tasksApi.getTaskReport({
    name: remoteFileName,
    folder: remoteFolder,
    reportType: 'TaskSheet',
    format: 'xlsx'
});
  1. Lưu kết quả cục bộ - Nội dung phản hồi nhị phân được ghi vào project.xlsx.
fs.writeFileSync(localOutputPath, reportResponse.body);

Các bước này minh họa một quy trình BƯỚC NHẤT BƯỚC CHUYỂN ĐỔI TẬP TIN MPP LỚN SANG XLSX TRONG Node.JS có thể được điều chỉnh cho các loại báo cáo khác như GanttChart hoặc ResourceSheet.

Yêu cầu trước và Cài đặt cho Aspose.CAD Cloud SDK

  1. Phiên bản Node.js - Đảm bảo bạn đang chạy Node.js 14 trở lên.
  2. Cài đặt SDK - Sử dụng npm để thêm gói vào dự án của bạn.
    npm install @asposecloud/aspose-cad-cloud
    
    Gói này có sẵn trên trang tải xuống chính thức.
  3. Tạo tài khoản Aspose Cloud - Lấy clientId và clientSecret từ bảng điều khiển Aspose Cloud.
  4. Thiết lập biến môi trường (tùy chọn nhưng được khuyến nghị) để giữ thông tin đăng nhập ra khỏi mã nguồn.

Khi đã đáp ứng các điều kiện tiên quyết này, bạn có thể chạy ví dụ mã đầy đủ được trình bày ở trên.

Tùy chọn và Cài đặt chuyển đổi

API Nhiệm vụ cung cấp một số tham số ảnh hưởng đến đầu ra:

  • reportType - Xác định loại dữ liệu được xuất. Các tùy chọn bao gồm TaskSheet, GanttChart, ResourceSheet, v.v. Ví dụ sử dụng TaskSheet để tạo danh sách nhiệm vụ phẳng dưới dạng XLSX.
  • format - Hiện đang hỗ trợ xlsx, pdf, html. Thay đổi giá trị này sẽ chuyển đổi loại tệp đầu ra.
  • folder - Chỉ định thư mục lưu trữ đám mây nơi tệp MPP nguồn nằm. Điều chỉnh theo nhu cầu cho cấu trúc dự án của bạn.

Để xem danh sách đầy đủ các tùy chọn, tham khảo API reference.

Kết luận

Bây giờ bạn đã có một phương pháp hoàn chỉnh, sẵn sàng cho môi trường sản xuất để chuyển đổi MPP sang XLSX trong Node.JS bằng cách sử dụng Aspose.CAD Cloud SDK for Node.js. SDK xử lý việc xác thực, lưu trữ tệp và tạo báo cáo, cho phép bạn tập trung vào việc tích hợp dữ liệu XLSX vào logic nghiệp vụ của mình. Hãy nhớ mua giấy phép phù hợp cho việc sử dụng trong sản xuất; chi tiết giá cả có trên trang sản phẩm và bạn có thể nhận giấy phép tạm thời từ trang giấy phép tạm thời. Chúc bạn lập trình vui vẻ!

Câu hỏi thường gặp

Tôi có thể chuyển đổi MPP sang XLSX trong Node.JS mà không sử dụng Aspose.CAD Cloud SDK không?
Trong khi có thể tạo bộ phân tích tùy chỉnh, Aspose.CAD Cloud SDK for Node.js cung cấp một giải pháp đã được kiểm chứng, đáng tin cậy, giúp tiết kiệm thời gian phát triển và xử lý các trường hợp biên.

Các loại báo cáo nào có sẵn khi chuyển đổi MPP sang XLSX?
API hỗ trợ TaskSheet, GanttChart, ResourceSheet, và các loại khác. Việc chọn một reportType khác sẽ thay đổi cấu trúc của tệp XLSX được tạo.

Làm thế nào để tôi xử lý các tệp MPP lớn trong quá trình chuyển đổi?
Tải lên các tệp lớn theo từng phần bằng cách sử dụng API lưu trữ, giám sát trạng thái chuyển đổi và truyền trực tiếp kết quả XLSX để tránh tiêu thụ bộ nhớ cao.

Đọc thêm