MPP in XML

Conversione da file MPP a XML | Esportazione di file Microsoft Project in XML in C#

Microsoft Project è uno dei software di gestione progetti più popolari e diffusi. Il software consente di pianificare progetti, assegnare attività, gestire risorse e flussi di lavoro, creare report, ecc. Tuttavia, MS Project non offre l’opportunità di aprire o modificare il file in formato MPP per gli utenti non registrati. Ciò significa che se non si dispone di una licenza Microsoft Project acquistata, non è possibile lavorare con i file MPP. Quindi, quando si condividono file di progetto, il destinatario deve avere un abbonamento a MS Project anche se desidera solo visualizzarlo. Pertanto, la conversione del file MPP in XML può essere una buona soluzione.

API di conversione file di Microsoft Project

Aspose.Tasks Cloud è la nostra API REST che offre le funzionalità per creare, elaborare e trasformare file di gestione progetti in vari Formati file supportati. Per elaborare il file di progetto, puoi caricare il file dall’archiviazione cloud, importare il progetto dal formato DB primavera (primavera SQLite.db o primavera XML) e importare il progetto dal database con una stringa di connessione specificata o importare il progetto da Project Online. In base allo scopo di questo articolo, utilizzeremo Aspose.Tasks Cloud SDK per .NET che è disponibile per il download su NuGet e GitHub. Esegui il seguente comando nel terminale per installare l’SDK tramite NuGet:

nuget install Aspose.Tasks-Cloud

Per installare direttamente l’SDK nel gestore pacchetti NuGet, eseguire il seguente comando:

 PM> Install-Package Aspose.Tasks-Cloud

Ora dobbiamo creare un account di abbonamento gratuito visitando Aspose.Cloud dashboard. Utilizza il tuo account GitHub o Google per registrarti semplicemente oppure clicca su Crea un nuovo account e ottieni le tue credenziali cliente.

Convertire MPP in XML in C#

Si prega di seguire i passaggi specificati di seguito per eseguire l’operazione di conversione utilizzando C# .NET

  • Per prima cosa, dobbiamo creare un oggetto TasksApi passando i dettagli ClientSecret e ClientId come argomenti
  • In secondo luogo, caricare il contenuto di MPP nell’istanza FileStream
  • Ora crea un oggetto della classe PostCreateRequest che richiede un nome file e un’istanza Stream contenente il contenuto MPP
  • Chiama il metodo UploadFile(…) di TasksApi per caricare un file sullo storage Cloud
  • Quindi, crea un oggetto della classe GetTaskDocumentWithFormatRequest
  • Specificare il valore XML dall’enumerazione ProjectFileFormat e assegnare il valore alla proprietà Format dell’oggetto GetTaskDocumentWithFormatRequest
  • Ora chiama il metodo GetTaskDocumentWithFormat(…) per eseguire l’operazione di conversione
  • Poiché l’output dell’ultimo passaggio viene salvato nell’istanza Stream, dobbiamo usare l’oggetto File.Create per salvare l’output sull’unità locale. I dettagli possono essere visti nel metodo personalizzato saveToDisk(..).
// Ottieni ClientID da https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// creare un'istanza di TasksApi
TasksApi tasksApi = new TasksApi(clientSecret, clientID);

// nome file MPP di input
String inputFile = "Home move plan.mpp";
// nome del file XML risultante
String resultant = "Converted.xml";

try
{

    // leggere il documento del progetto dal sistema locale nell'istanza del flusso
    using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
        // caricare il file sullo storage cloud
        tasksApi.UploadFile(uploadFileRequest);
    }
   
    // creare richiesta di conversione file MPP
    var request = new GetTaskDocumentWithFormatRequest();
    
    // specificare il nome MPP di input dall'archiviazione cloud
    request.Name = inputFile;
    
    // imposta XML come formato risultante
    request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
    
    // Se il parametro è vero, le risorse HTML vengono incluse come file separati e
    // restituito insieme al file html risultante come pacchetto zip.
    request.ReturnAsZipArchive = false;
    
    // eseguire l'operazione di conversione del documento
    Stream response = tasksApi.GetTaskDocumentWithFormat(request);

    if (response != null)
    {
        Console.WriteLine("Successfully converted MPP to XML !");
    }
    
    // metodo personalizzato per salvare il file risultante sull'unità di sistema locale
    saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// metodo per salvare il contenuto dello stream come oggetto file
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

I file di esempio utilizzati nell’esempio precedente possono essere trovati in Home move plan.mpp e Converted.xml.

Da MPP a XML tramite comandi cURL

I comandi cURL forniscono un meccanismo eccellente per accedere alle API REST tramite il terminale della riga di comando. Poiché Aspose.Tasks Cloud è sviluppato anche secondo i principi REST, possiamo accedere all’API anche tramite i comandi cURL. Tuttavia, poiché le API sono accessibili solo a persone autorizzate, in base ai dettagli di Client ID e Client Secret, dobbiamo creare un token di accesso JWT. Esegui il seguente comando per la generazione del token di accesso 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"

Per caricare il file MPP sullo storage Cloud, eseguire il seguente comando 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":{}}

Infine, chiamare il seguente comando per eseguire la conversione MPP in formato XML e salvare l’output sull’unità locale (nel percorso specificato).

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

Conclusione

L’articolo ha condiviso i dettagli su come convertire il file Microsoft Project in XML utilizzando il frammento di codice C# .NET. Inoltre, tieni presente che tutti i nostri Cloud SDK sono sviluppati con una licenza MIT, quindi il loro frammento di codice completo può essere scaricato da GitHub. In caso di problemi durante l’utilizzo dell’API o se hai domande correlate, non esitare a contattarci tramite il Free Product support forum.

Articoli correlati

Ti consigliamo inoltre di visitare i seguenti link per saperne di più su