MPP til XML

MPP-fil til XML-konvertering | Eksporter Microsoft Project-fil til XML i C#

Microsoft Project er en af de mest populære og udbredte projektstyringssoftware. Softwaren giver dig mulighed for at planlægge projekter, tildele opgaver, administrere ressourcer og arbejdsgange, oprette rapporter osv. MS Project giver dog ikke mulighed for at åbne eller redigere MPP-formatfilen for ikke-registrerede brugere. Det betyder, at hvis du ikke har en købt Microsoft Project-licens, kan du ikke arbejde med MPP-filer. Så når du deler projektfiler, skal modtageren have et MS Project-abonnement, selvom han/han kun vil se det. Derfor kan konverteringen af MPP-filen til XML være en god løsning.

Microsoft Project File Conversion API

Aspose.Tasks Cloud er vores REST API, der tilbyder funktionerne til at oprette, behandle og transformere projektstyringsfiler til forskellige Understøttede filformater. For at behandle projektfilen kan du indlæse filen fra skylageret, importere projektet fra primavera DB-format (primavera SQLite.db eller primavera XML) og importere projektet fra databasen med en specificeret forbindelsesstreng eller importere projektet fra Project Online. I henhold til denne artikels omfang vil vi bruge Aspose.Tasks Cloud SDK til .NET, som er tilgængelig til download på NuGet og GitHub. Udfør venligst følgende kommando i terminalen for at installere SDK’et via NuGet:

nuget install Aspose.Tasks-Cloud

For at installere SDK direkte i NuGet-pakkehåndteringen, skal du udføre følgende kommando:

 PM> Install-Package Aspose.Tasks-Cloud

Nu skal vi oprette en gratis abonnementskonto ved at besøge Aspose.Cloud dashboard. Brug din GitHub- eller Google-konto til blot at tilmelde dig, eller klik på Opret en ny konto og få dine kundeoplysninger.

Konverter MPP til XML i C#

Følg venligst nedenstående trin for at udføre konverteringen ved hjælp af C# .NET

  • Først skal vi oprette et TasksApi-objekt, mens vi sender ClientSecret og ClientId detaljer som argumenter
  • For det andet skal du indlæse indholdet af MPP til FileStream-forekomsten
  • Opret nu et objekt af klassen PostCreateRequest, som kræver et filnavn og Stream-forekomst, der indeholder MPP-indhold
  • Kald UploadFile(…)-metoden i TasksApi for at uploade en fil til skylageret
  • Opret derefter et objekt af klassen GetTaskDocumentWithFormatRequest
  • Angiv XML-værdi fra ProjectFileFormat-optælling, og tildel værdien til Format-egenskaben for GetTaskDocumentWithFormatRequest-objektet
  • Kald nu GetTaskDocumentWithFormat(…)-metoden for at udføre konverteringshandlingen
  • Da outputtet fra det sidste trin er gemt i Stream-forekomsten, skal vi bruge File.Create-objektet til at gemme outputtet på det lokale drev. Detaljerne kan ses i saveToDisk(..) brugerdefineret metode.
// Få ClientID fra https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// oprette TasksApi-instans
TasksApi tasksApi = new TasksApi(clientSecret, clientID);

// indtast MPP-filnavn
String inputFile = "Home move plan.mpp";
// resulterende XML-filnavn
String resultant = "Converted.xml";

try
{

    // læs projektdokumentet fra det lokale system til stream-instansen
    using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
        // upload fil til skylager
        tasksApi.UploadFile(uploadFileRequest);
    }
   
    // oprette MPP-filkonverteringsanmodning
    var request = new GetTaskDocumentWithFormatRequest();
    
    // angiv input MPP-navnet fra skylageret
    request.Name = inputFile;
    
    // sæt XML som resulterende format
    request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
    
    // Hvis parameteren er sand, inkluderes HTML-ressourcer som separate filer og
    // returneres sammen med den resulterende html-fil som en zip-pakke.
    request.ReturnAsZipArchive = false;
    
    // udføre dokumentkonverteringsoperation
    Stream response = tasksApi.GetTaskDocumentWithFormat(request);

    if (response != null)
    {
        Console.WriteLine("Successfully converted MPP to XML !");
    }
    
    // brugerdefineret metode til at gemme resulterende fil på lokalt systemdrev
    saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// metode til at gemme streamindhold som filobjekt
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

Eksempelfilerne brugt i ovenstående eksempel kan findes over Home move plan.mpp og Converted.xml.

MPP til XML ved hjælp af cURL-kommandoer

cURL-kommandoerne giver en fremragende mekanisme til at få adgang til REST API’er gennem kommandolinjeterminalen. Da Aspose.Tasks Cloud også er udviklet i henhold til REST-principperne, så kan vi også få adgang til API’et ved hjælp af cURL-kommandoer. Men da API’erne kun er tilgængelige for autoriserede personer, så baseret på Client ID og Client Secret detaljer, skal vi oprette et JWT adgangstoken. Udfør venligst følgende kommando for generering af JWT-adgangstoken.

 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"

For at uploade MPP-filen til skylageret skal du udføre følgende cURL-kommando.

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

Til sidst skal du kalde følgende kommando for at udføre MPP-konverteringen til XML-format og gemme outputtet på det lokale drev (på den angivne sti).

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

Konklusion

Artiklen har delt detaljerne om, hvordan du konverterer Microsoft Project-filen til XML ved hjælp af C# .NET-kodestykket. Bemærk desuden, at alle vores Cloud SDK’er er udviklet under en MIT-licens, så deres komplette kodestykke kan downloades fra GitHub. Hvis du støder på problemer, mens du bruger API’en, eller du har relaterede spørgsmål, er du velkommen til at kontakte os via Free Product Support-forum.

Relaterede artikler

Vi anbefaler også at besøge følgende links for at lære mere om