MPP vers XML

Conversion de fichiers MPP en XML | Exporter un fichier Microsoft Project vers XML en C#

Microsoft Project est l’un des logiciels de gestion de projet les plus populaires et les plus répandus. Le logiciel vous permet de planifier des projets, d’attribuer des tâches, de gérer des ressources et des flux de travail, de créer des rapports, etc. Cependant, MS Project ne permet pas aux utilisateurs non enregistrés d’ouvrir ou de modifier le fichier au format MPP. Cela signifie que si vous n’avez pas acheté de licence Microsoft Project, vous ne pouvez pas travailler avec les fichiers MPP. Ainsi, lors du partage de fichiers de projet, le destinataire doit disposer d’un abonnement MS Project même s’il souhaite uniquement les consulter. Par conséquent, la conversion du fichier MPP en XML peut être une bonne solution.

API de conversion de fichiers Microsoft Project

Aspose.Tasks Cloud est notre API REST offrant les fonctionnalités permettant de créer, de traiter et de transformer des fichiers de gestion de projet en divers formats de fichiers pris en charge. Afin de traiter le fichier de projet, vous pouvez charger le fichier à partir du stockage cloud, importer le projet à partir du format Primavera DB (Primavera SQLite.db ou Primavera XML) et importer le projet à partir de la base de données avec une chaîne de connexion spécifiée ou importer le projet à partir de Project Online. Conformément à la portée de cet article, nous allons utiliser Aspose.Tasks Cloud SDK for .NET qui est disponible en téléchargement sur NuGet et GitHub. Veuillez exécuter la commande suivante dans le terminal pour installer le SDK via NuGet :

nuget install Aspose.Tasks-Cloud

Pour installer directement le SDK dans le gestionnaire de packages NuGet, veuillez exécuter la commande suivante :

 PM> Install-Package Aspose.Tasks-Cloud

Nous devons maintenant créer un compte d’abonnement gratuit en visitant le tableau de bord Aspose.Cloud. Utilisez votre compte GitHub ou Google pour vous inscrire simplement ou cliquez sur Créer un nouveau compte et obtenez vos identifiants client.

Convertir MPP en XML en C#

Veuillez suivre les étapes ci-dessous pour effectuer l’opération de conversion à l’aide de C# .NET

  • Tout d’abord, nous devons créer un objet TasksApi tout en transmettant les détails ClientSecret et ClientId comme arguments
  • Deuxièmement, chargez le contenu de MPP dans l’instance FileStream
  • Créez maintenant un objet de classe PostCreateRequest qui nécessite un nom de fichier et une instance de flux contenant du contenu MPP
  • Appelez la méthode UploadFile(…) de TasksApi pour télécharger un fichier vers le stockage Cloud
  • Ensuite, créez un objet de classe GetTaskDocumentWithFormatRequest
  • Spécifiez la valeur XML à partir de l’énumération ProjectFileFormat et attribuez la valeur à la propriété Format de l’objet GetTaskDocumentWithFormatRequest
  • Appelez maintenant la méthode GetTaskDocumentWithFormat(…) pour effectuer l’opération de conversion
  • Étant donné que la sortie de la dernière étape est enregistrée dans l’instance Stream, nous devons utiliser l’objet File.Create pour enregistrer la sortie sur le lecteur local. Les détails peuvent être consultés dans la méthode personnalisée saveToDisk(..).
// Obtenez l'ID client à partir de https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// créer une instance TasksApi
TasksApi tasksApi = new TasksApi(clientSecret, clientID);

// saisir le nom du fichier MPP
String inputFile = "Home move plan.mpp";
// nom du fichier XML résultant
String resultant = "Converted.xml";

try
{

    // lire le document du projet à partir du système local dans l'instance de flux
    using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
        // télécharger le fichier vers le stockage cloud
        tasksApi.UploadFile(uploadFileRequest);
    }
   
    // créer une demande de conversion de fichier MPP
    var request = new GetTaskDocumentWithFormatRequest();
    
    // spécifiez le nom MPP d'entrée à partir du stockage cloud
    request.Name = inputFile;
    
    // définir XML comme format résultant
    request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
    
    // Si le paramètre est vrai, les ressources HTML sont incluses sous forme de fichiers séparés et
    // renvoyé avec le fichier html résultant sous forme de package zip.
    request.ReturnAsZipArchive = false;
    
    // effectuer une opération de conversion de document
    Stream response = tasksApi.GetTaskDocumentWithFormat(request);

    if (response != null)
    {
        Console.WriteLine("Successfully converted MPP to XML !");
    }
    
    // méthode personnalisée pour enregistrer le fichier résultant sur le lecteur système local
    saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// méthode pour enregistrer le contenu du flux en tant qu'objet fichier
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

Les fichiers d’exemple utilisés dans l’exemple ci-dessus peuvent être trouvés dans Home move plan.mpp et Converted.xml.

Conversion MPP en XML à l’aide des commandes cURL

Les commandes cURL fournissent un excellent mécanisme pour accéder aux API REST via le terminal de ligne de commande. Étant donné qu’Aspose.Tasks Cloud est également développé selon les principes REST, nous pouvons également accéder à l’API à l’aide des commandes cURL. Mais comme les API ne sont accessibles qu’aux personnes autorisées, donc en fonction des détails de l’ID client et du secret client, nous devons créer un jeton d’accès JWT. Veuillez exécuter la commande suivante pour générer le jeton d’accès 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"

Afin de télécharger le fichier MPP sur le stockage Cloud, veuillez exécuter la commande cURL suivante.

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

Enfin, appelez la commande suivante pour effectuer la conversion MPP au format XML et enregistrer la sortie sur le lecteur local (sur le chemin spécifié).

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

Conclusion

L’article a partagé les détails sur la façon de convertir le fichier Microsoft Project en XML à l’aide de l’extrait de code C# .NET. De plus, veuillez noter que tous nos SDK Cloud sont développés sous une licence MIT, leur extrait de code complet peut donc être téléchargé depuis GitHub. Si vous rencontrez des problèmes lors de l’utilisation de l’API ou si vous avez des questions connexes, n’hésitez pas à nous contacter via le Forum d’assistance produit gratuit.

Articles connexes

Nous vous recommandons également de visiter les liens suivants pour en savoir plus sur