MPP naar XML

MPP-bestand naar XML-conversie | Exporteer Microsoft Project-bestand naar XML in C#

Microsoft Project is een van de populairste en meest wijdverspreide projectmanagementsoftware. Met de software kunt u projecten plannen, taken toewijzen, resources en workflows beheren, rapporten maken, enz. MS Project biedt echter geen mogelijkheid om het MPP-formaatbestand te openen of te bewerken voor niet-geregistreerde gebruikers. Dit betekent dat u niet met MPP-bestanden kunt werken als u geen Microsoft Project-licentie hebt gekocht. Dus bij het delen van projectbestanden moet de ontvanger een MS Project-abonnement hebben, zelfs als hij/zij het alleen wil bekijken. Daarom kan de conversie van het MPP-bestand naar XML een goede oplossing zijn.

Microsoft Project-bestandsconversie-API

Aspose.Tasks Cloud is onze REST API die de functies biedt om projectbeheerbestanden te maken, verwerken en transformeren naar verschillende ondersteunde bestandsindelingen. Om het projectbestand te verwerken, kunt u het bestand laden vanuit cloudopslag, het project importeren vanuit primavera DB-indeling (primavera SQLite.db of primavera XML) en het project importeren vanuit de database met een opgegeven verbindingsreeks of het project importeren vanuit Project Online. Volgens de reikwijdte van dit artikel gaan we Aspose.Tasks Cloud SDK voor .NET gebruiken, dat beschikbaar is om te downloaden op NuGet en GitHub. Voer de volgende opdracht uit in de terminal om de SDK via NuGet te installeren:

nuget install Aspose.Tasks-Cloud

Om de SDK rechtstreeks in de NuGet-pakketbeheerder te installeren, voert u de volgende opdracht uit:

 PM> Install-Package Aspose.Tasks-Cloud

Nu moeten we een gratis abonnementsaccount aanmaken door naar Aspose.Cloud dashboard te gaan. Gebruik je GitHub- of Google-account om je eenvoudig aan te melden of klik op Maak een nieuw account en verkrijg je clientreferenties.

Converteer MPP naar XML in C#

Volg de onderstaande stappen om de conversiebewerking uit te voeren met C# .NET

  • Eerst moeten we een TasksApi-object maken en daarbij ClientSecret- en ClientId-details als argumenten doorgeven
  • Ten tweede, laad de inhoud van MPP naar het FileStream-exemplaar
  • Maak nu een object van de PostCreateRequest-klasse die een bestandsnaam en een Stream-instantie nodig heeft die MPP-inhoud bevatten
  • Roep de UploadFile(…)-methode van TasksApi aan om een bestand naar de cloudopslag te uploaden
  • Maak vervolgens een object van de klasse GetTaskDocumentWithFormatRequest
  • Geef een XML-waarde op uit de ProjectFileFormat-enumeratie en wijs de waarde toe aan de Format-eigenschap van het GetTaskDocumentWithFormatRequest-object
  • Roep nu de GetTaskDocumentWithFormat(…) methode aan om de conversiebewerking uit te voeren
  • Omdat de uitvoer van de laatste stap is opgeslagen in de Stream-instantie, moeten we File.Create-object gebruiken om de uitvoer op de lokale schijf op te slaan. De details zijn te zien in de aangepaste methode saveToDisk(..).
// Haal ClientID op van https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// TasksApi-instantie maken
TasksApi tasksApi = new TasksApi(clientSecret, clientID);

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

try
{

    // lees het projectdocument van het lokale systeem naar de streaminstantie
    using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
        // bestand uploaden naar cloudopslag
        tasksApi.UploadFile(uploadFileRequest);
    }
   
    // maak een MPP-bestandsconversieverzoek
    var request = new GetTaskDocumentWithFormatRequest();
    
    // geef de invoer MPP-naam op vanuit de cloudopslag
    request.Name = inputFile;
    
    // XML instellen als resulterend formaat
    request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
    
    // Als de parameter true is, worden HTML-bronnen opgenomen als afzonderlijke bestanden en
    // teruggestuurd, samen met het resulterende HTML-bestand als een zip-pakket.
    request.ReturnAsZipArchive = false;
    
    // documentconversiebewerking uitvoeren
    Stream response = tasksApi.GetTaskDocumentWithFormat(request);

    if (response != null)
    {
        Console.WriteLine("Successfully converted MPP to XML !");
    }
    
    // aangepaste methode om het resulterende bestand op de lokale systeemschijf op te slaan
    saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// methode om streaminhoud op te slaan als bestandsobject
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

De voorbeeldbestanden die in bovenstaand voorbeeld zijn gebruikt, zijn te vinden via Home move plan.mpp en Converted.xml.

MPP naar XML met behulp van cURL-opdrachten

De cURL-opdrachten bieden een uitstekend mechanisme om toegang te krijgen tot REST API’s via de opdrachtregelterminal. Omdat Aspose.Tasks Cloud ook is ontwikkeld volgens REST-principes, kunnen we ook toegang krijgen tot de API met behulp van cURL-opdrachten. Maar omdat de API’s alleen toegankelijk zijn voor geautoriseerde personen, moeten we op basis van Client ID- en Client Secret-gegevens een JWT-toegangstoken maken. Voer de volgende opdracht uit voor het genereren van JWT-toegangstokens.

 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"

Om het MPP-bestand naar de cloudopslag te uploaden, voert u de volgende cURL-opdracht uit.

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

Voer ten slotte de volgende opdracht uit om de MPP-conversie naar XML-formaat uit te voeren en de uitvoer op de lokale schijf (op het opgegeven pad) op te slaan.

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

Conclusie

Het artikel heeft de details gedeeld over hoe u het Microsoft Project-bestand naar XML kunt converteren met behulp van het C# .NET-codefragment. Houd er bovendien rekening mee dat al onze Cloud SDK’s zijn ontwikkeld onder een MIT-licentie, dus hun volledige codefragment kan worden gedownload van GitHub. Mocht u problemen ondervinden bij het gebruik van de API of hebt u gerelateerde vragen, neem dan gerust contact met ons op via het Free Product support forum.

Gerelateerde artikelen

Wij raden u ook aan de volgende links te bezoeken om meer te weten te komen over