MPP sang XML

Chuyển đổi tệp MPP sang XML | Xuất tệp Microsoft Project sang XML bằng C#

Microsoft Project là một trong những phần mềm quản lý dự án phổ biến và rộng rãi nhất. Phần mềm này cho phép bạn lập kế hoạch dự án, phân công nhiệm vụ, quản lý tài nguyên và quy trình làm việc, tạo báo cáo, v.v. Tuy nhiên, MS Project không cung cấp cơ hội mở hoặc chỉnh sửa tệp định dạng MPP cho người dùng chưa đăng ký. Điều này có nghĩa là nếu bạn không có giấy phép Microsoft Project đã mua, bạn không thể làm việc với các tệp MPP. Vì vậy, khi chia sẻ các tệp dự án, người nhận phải có đăng ký MS Project ngay cả khi họ chỉ muốn xem tệp đó. Do đó, việc chuyển đổi tệp MPP sang XML có thể là một giải pháp tốt.

API chuyển đổi tệp Microsoft Project

Aspose.Tasks Cloud là REST API của chúng tôi cung cấp các tính năng để tạo, xử lý cũng như chuyển đổi các tệp quản lý dự án sang nhiều Định dạng tệp được hỗ trợ. Để xử lý tệp dự án, bạn có thể tải tệp từ bộ lưu trữ đám mây, nhập dự án từ định dạng primavera DB (primavera SQLite.db hoặc primavera XML) và nhập dự án từ cơ sở dữ liệu với chuỗi kết nối được chỉ định hoặc nhập dự án từ Project Online. Theo phạm vi của bài viết này, chúng tôi sẽ sử dụng Aspose.Tasks Cloud SDK cho .NET có sẵn để tải xuống tại NuGetGitHub. Vui lòng thực hiện lệnh sau trong thiết bị đầu cuối để cài đặt SDK qua NuGet:

nuget install Aspose.Tasks-Cloud

Để cài đặt trực tiếp SDK trong trình quản lý gói NuGet, vui lòng thực hiện lệnh sau:

 PM> Install-Package Aspose.Tasks-Cloud

Bây giờ chúng ta cần tạo một tài khoản đăng ký miễn phí bằng cách truy cập Bảng điều khiển Aspose.Cloud. Sử dụng tài khoản GitHub hoặc Google của bạn để Đăng ký hoặc nhấp vào Tạo tài khoản mới và lấy Thông tin xác thực khách hàng của bạn.

Chuyển đổi MPP sang XML trong C#

Vui lòng làm theo các bước được chỉ định bên dưới để thực hiện thao tác chuyển đổi bằng C# .NET

  • Đầu tiên, chúng ta cần tạo một đối tượng TasksApi trong khi truyền thông tin chi tiết ClientSecret và ClientId làm đối số
  • Thứ hai, tải nội dung của MPP vào phiên bản FileStream
  • Bây giờ hãy tạo một đối tượng của lớp PostCreateRequest yêu cầu tên tệp và thể hiện Stream chứa nội dung MPP
  • Gọi phương thức UploadFile(…) của TasksApi để tải tệp lên bộ nhớ đám mây
  • Sau đó, tạo một đối tượng của lớp GetTaskDocumentWithFormatRequest
  • Chỉ định giá trị XML từ phép liệt kê ProjectFileFormat và gán giá trị cho thuộc tính Format của đối tượng GetTaskDocumentWithFormatRequest
  • Bây giờ hãy gọi phương thức GetTaskDocumentWithFormat(…) để thực hiện thao tác chuyển đổi
  • Vì đầu ra của bước cuối cùng được lưu trong phiên bản Stream, chúng ta cần sử dụng đối tượng File.Create để lưu đầu ra trên ổ đĩa cục bộ. Chi tiết có thể được xem trong phương thức tùy chỉnh saveToDisk(..).
// Lấy ClientID từ https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// tạo phiên bản TasksApi
TasksApi tasksApi = new TasksApi(clientSecret, clientID);

// nhập tên tệp MPP
String inputFile = "Home move plan.mpp";
// tên tệp XML kết quả
String resultant = "Converted.xml";

try
{

    // đọc tài liệu dự án từ hệ thống cục bộ vào phiên bản luồng
    using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
        // tải tập tin lên bộ nhớ đám mây
        tasksApi.UploadFile(uploadFileRequest);
    }
   
    // tạo yêu cầu chuyển đổi tệp MPP
    var request = new GetTaskDocumentWithFormatRequest();
    
    // chỉ định tên MPP đầu vào từ lưu trữ đám mây
    request.Name = inputFile;
    
    // đặt XML làm định dạng kết quả
    request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
    
    // Nếu tham số là đúng, các tài nguyên HTML được bao gồm dưới dạng các tệp riêng biệt và
    // được trả về cùng với tệp html kết quả dưới dạng một gói zip.
    request.ReturnAsZipArchive = false;
    
    // thực hiện thao tác chuyển đổi tài liệu
    Stream response = tasksApi.GetTaskDocumentWithFormat(request);

    if (response != null)
    {
        Console.WriteLine("Successfully converted MPP to XML !");
    }
    
    // phương pháp tùy chỉnh để lưu tệp kết quả trên ổ đĩa hệ thống cục bộ
    saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// phương pháp lưu nội dung luồng dưới dạng đối tượng tệp
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

Các tệp mẫu được sử dụng trong ví dụ trên có thể được tìm thấy tại Home move plan.mppConverted.xml.

MPP sang XML sử dụng lệnh cURL

Các lệnh cURL cung cấp một cơ chế tuyệt vời để truy cập API REST thông qua thiết bị đầu cuối dòng lệnh. Vì Aspose.Tasks Cloud cũng được phát triển theo các nguyên tắc REST, nên chúng ta cũng có thể truy cập API bằng các lệnh cURL. Nhưng vì API chỉ có thể truy cập được đối với những người được ủy quyền, nên dựa trên thông tin chi tiết về Client ID và Client Secret, chúng ta cần tạo mã thông báo truy cập JWT. Vui lòng thực hiện lệnh sau để tạo mã thông báo truy cập JWT.

 curl -v "https://api.aspose.cloud/connect/token" \
 -X POST \
 -d "grant_type=client_credentials&client_id=4db2f826-bf9c-42e7-8b2a-8cbca2d15553&client_secret=d757548a9f2558c39c2feebdf85b4c44" \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Accept: application/json"

Để tải tệp MPP lên bộ nhớ đám mây, vui lòng thực hiện lệnh cURL sau.

curl -X PUT "https://api.aspose.cloud/v3.0/tasks/storage/file/Home%20move%20plan.mpp" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d {"File":{}}

Cuối cùng, hãy gọi lệnh sau để thực hiện chuyển đổi MPP sang định dạng XML và lưu kết quả vào ổ đĩa cục bộ (theo đường dẫn đã chỉ định).

curl -X GET "https://api.aspose.cloud/v3.0/tasks/Home%20move%20plan.mpp/format?format=xml&returnAsZipArchive=false" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o Converted.xml

Phần kết luận

Bài viết đã chia sẻ thông tin chi tiết về cách chuyển đổi tệp Microsoft Project sang XML bằng đoạn mã C# .NET. Ngoài ra, xin lưu ý rằng tất cả Cloud SDK của chúng tôi đều được phát triển theo giấy phép MIT, do đó, đoạn mã hoàn chỉnh của chúng có thể được tải xuống từ GitHub. Trong trường hợp bạn gặp bất kỳ sự cố nào khi sử dụng API hoặc có bất kỳ thắc mắc liên quan nào, vui lòng liên hệ với chúng tôi qua Diễn đàn hỗ trợ sản phẩm miễn phí.

Bài viết liên quan

Chúng tôi cũng khuyên bạn nên truy cập các liên kết sau để tìm hiểu thêm về