MPP σε XML

Μετατροπή αρχείου MPP σε XML | Εξαγωγή αρχείου Microsoft Project σε XML σε C#

Το Microsoft Project είναι ένα από τα πιο δημοφιλή και διαδεδομένα λογισμικά διαχείρισης έργων. Το λογισμικό σάς επιτρέπει να σχεδιάζετε έργα, να εκχωρείτε εργασίες, να διαχειρίζεστε πόρους και ροές εργασίας, να δημιουργείτε αναφορές κ.λπ. Ωστόσο, το MS Project δεν παρέχει την ευκαιρία να ανοίξετε ή να επεξεργαστείτε το αρχείο μορφής MPP για μη εγγεγραμμένους χρήστες. Αυτό σημαίνει ότι εάν δεν έχετε αγοράσει άδεια χρήσης Microsoft Project, δεν μπορείτε να εργαστείτε με αρχεία MPP. Έτσι, όταν μοιράζεστε αρχεία έργου, ο παραλήπτης πρέπει να έχει συνδρομή MS Project, ακόμα κι αν θέλει μόνο να το δει. Επομένως, η μετατροπή του αρχείου MPP σε XML μπορεί να είναι μια καλή λύση.

API μετατροπής αρχείου Microsoft Project

Το Aspose.Tasks Cloud είναι το REST API που προσφέρει τις δυνατότητες δημιουργίας, επεξεργασίας καθώς και μετατροπής αρχείων διαχείρισης έργου σε διάφορες Υποστηριζόμενες μορφές αρχείων. Για να επεξεργαστείτε το αρχείο του έργου, μπορείτε να φορτώσετε το αρχείο από την αποθήκευση cloud, να εισαγάγετε το έργο από τη μορφή primavera DB (primavera SQLite.db ή primavera XML) και να εισαγάγετε το έργο από τη βάση δεδομένων με μια καθορισμένη συμβολοσειρά σύνδεσης ή να εισαγάγετε το έργο από το Project Online. Σύμφωνα με το πεδίο εφαρμογής αυτού του άρθρου, πρόκειται να χρησιμοποιήσουμε το Aspose.Tasks Cloud SDK για .NET το οποίο είναι διαθέσιμο για λήψη στο NuGet και στο GitHub. Εκτελέστε την ακόλουθη εντολή στο τερματικό για να εγκαταστήσετε το SDK μέσω NuGet:

nuget install Aspose.Tasks-Cloud

Για να εγκαταστήσετε απευθείας το SDK στη διαχείριση πακέτων NuGet, εκτελέστε την ακόλουθη εντολή:

 PM> Install-Package Aspose.Tasks-Cloud

Τώρα πρέπει να δημιουργήσουμε έναν δωρεάν λογαριασμό συνδρομής μεταβαίνοντας στο Aspose.Cloud dashboard. Χρησιμοποιήστε τον λογαριασμό σας στο GitHub ή στο Google για απλώς Εγγραφείτε ή κάντε κλικ στο Δημιουργία νέου λογαριασμού και αποκτήστε τα διαπιστευτήρια πελάτη σας.

Μετατροπή MPP σε XML σε C#

Ακολουθήστε τα βήματα που καθορίζονται παρακάτω για να εκτελέσετε τη λειτουργία μετατροπής χρησιμοποιώντας C# .NET

  • Αρχικά, πρέπει να δημιουργήσουμε ένα αντικείμενο TasksApi ενώ μεταβιβάζουμε τις λεπτομέρειες ClientSecret και ClientId ως ορίσματα
  • Δεύτερον, φορτώστε το περιεχόμενο του MPP στην παρουσία FileStream
  • Τώρα δημιουργήστε ένα αντικείμενο της κλάσης PostCreateRequest που απαιτεί ένα όνομα αρχείου και μια παρουσία ροής που να περιέχει περιεχόμενο MPP
  • Καλέστε τη μέθοδο UploadFile(…) του TasksApi για να ανεβάσετε ένα αρχείο στο χώρο αποθήκευσης Cloud
  • Στη συνέχεια, δημιουργήστε ένα αντικείμενο της κλάσης GetTaskDocumentWithFormatRequest
  • Καθορίστε την τιμή XML από την απαρίθμηση ProjectFileFormat και εκχωρήστε την τιμή στην ιδιότητα Format του αντικειμένου GetTaskDocumentWithFormatRequest
  • Τώρα καλέστε τη μέθοδο GetTaskDocumentWithFormat(…) για να εκτελέσετε τη λειτουργία μετατροπής
  • Εφόσον η έξοδος του τελευταίου βήματος αποθηκεύεται στην παρουσία του Stream, πρέπει να χρησιμοποιήσουμε το αντικείμενο File.Create για να αποθηκεύσουμε την έξοδο στην τοπική μονάδα δίσκου. Μπορείτε να δείτε τις λεπτομέρειες στην προσαρμοσμένη μέθοδο saveToDisk(..).
// Λήψη ClientID από https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// δημιουργία παρουσίας TasksApi
TasksApi tasksApi = new TasksApi(clientSecret, clientID);

// εισάγετε το όνομα αρχείου MPP
String inputFile = "Home move plan.mpp";
// όνομα αρχείου XML που προκύπτει
String resultant = "Converted.xml";

try
{

    // διαβάστε το έγγραφο του έργου από το τοπικό σύστημα στην παρουσία ροής
    using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
        // μεταφορτώστε το αρχείο στο χώρο αποθήκευσης cloud
        tasksApi.UploadFile(uploadFileRequest);
    }
   
    // δημιουργία αιτήματος μετατροπής αρχείου MPP
    var request = new GetTaskDocumentWithFormatRequest();
    
    // καθορίστε το όνομα MPP εισόδου από την αποθήκευση cloud
    request.Name = inputFile;
    
    // ορίστε την XML ως προκύπτουσα μορφή
    request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
    
    // Εάν η παράμετρος είναι αληθής, οι πόροι HTML περιλαμβάνονται ως ξεχωριστά αρχεία και
    // επιστράφηκε μαζί με το αρχείο html που προκύπτει ως πακέτο zip.
    request.ReturnAsZipArchive = false;
    
    // εκτελέστε τη λειτουργία μετατροπής εγγράφων
    Stream response = tasksApi.GetTaskDocumentWithFormat(request);

    if (response != null)
    {
        Console.WriteLine("Successfully converted MPP to XML !");
    }
    
    // προσαρμοσμένη μέθοδος για την αποθήκευση του προκύπτοντος αρχείου στην τοπική μονάδα δίσκου συστήματος
    saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// μέθοδο αποθήκευσης περιεχομένου ροής ως αντικείμενο αρχείου
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

Τα δείγματα αρχείων που χρησιμοποιούνται στο παραπάνω παράδειγμα βρίσκονται στα Home move plan.mpp και Converted.xml.

MPP σε XML χρησιμοποιώντας εντολές cURL

Οι εντολές cURL παρέχουν έναν εξαιρετικό μηχανισμό πρόσβασης στα REST API μέσω του τερματικού της γραμμής εντολών. Δεδομένου ότι το Aspose.Tasks Cloud αναπτύσσεται επίσης σύμφωνα με τις αρχές REST, έτσι μπορούμε επίσης να έχουμε πρόσβαση στο API χρησιμοποιώντας εντολές cURL. Ωστόσο, καθώς τα API είναι προσβάσιμα μόνο σε εξουσιοδοτημένα άτομα, επομένως με βάση τα στοιχεία Client ID και Client Secret, πρέπει να δημιουργήσουμε ένα διακριτικό πρόσβασης JWT. Εκτελέστε την ακόλουθη εντολή για τη δημιουργία διακριτικών πρόσβασης 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"

Για να ανεβάσετε το αρχείο MPP στο χώρο αποθήκευσης Cloud, εκτελέστε την ακόλουθη εντολή cURL.

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":{}}

Τέλος, καλέστε την ακόλουθη εντολή για να εκτελέσετε τη μετατροπή MPP σε μορφή XML και να αποθηκεύσετε την έξοδο στην τοπική μονάδα δίσκου (στην καθορισμένη διαδρομή).

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

Σύναψη

Το άρθρο έχει κοινοποιήσει τις λεπτομέρειες σχετικά με τον τρόπο μετατροπής του αρχείου Microsoft Project σε XML χρησιμοποιώντας το απόσπασμα κώδικα C# .NET. Επιπλέον, λάβετε υπόψη σας ότι όλα τα Cloud SDK έχουν αναπτυχθεί με άδεια MIT, επομένως το πλήρες απόσπασμα κώδικα μπορεί να ληφθεί από το GitHub. Σε περίπτωση που αντιμετωπίσετε προβλήματα κατά τη χρήση του API ή έχετε σχετικά ερωτήματα, μη διστάσετε να επικοινωνήσετε μαζί μας μέσω του Φόρουμ υποστήριξης δωρεάν προϊόντων.

Σχετικά άρθρα

Συνιστούμε επίσης να επισκεφθείτε τους παρακάτω συνδέσμους για να μάθετε περισσότερα