A Microsoft Project az egyik legnépszerűbb és legelterjedtebb projektmenedzsment szoftver. A szoftver lehetővé teszi projektek tervezését, feladatok kiosztását, erőforrások és munkafolyamatok kezelését, jelentések készítését stb. Az MS Project azonban nem ad lehetőséget az MPP formátumú fájl megnyitására vagy szerkesztésére nem regisztrált felhasználók számára. Ez azt jelenti, hogy ha nem rendelkezik megvásárolt Microsoft Project licenccel, nem tud dolgozni MPP fájlokkal. Tehát a projektfájlok megosztása során a címzettnek MS Project-előfizetéssel kell rendelkeznie, még akkor is, ha csak látni szeretné. Ezért jó megoldás lehet az MPP fájl XML formátumba átalakítása.
- Microsoft Project File Conversion API
- MPP konvertálása XML-be C#-ban
- MPP-ből XML-be cURL-parancsok használatával
Microsoft Project File Conversion API
Az Aspose.Tasks Cloud a REST API-nk, amely a projektmenedzsment fájlok különböző támogatott fájlformátumokba létrehozására, feldolgozására és átalakítására szolgáló szolgáltatásokat kínál. A projektfájl feldolgozásához betöltheti a fájlt felhőtárhelyről, importálhatja a projektet primavera DB formátumból (primavera SQLite.db vagy primavera XML), és importálhatja a projektet az adatbázisból egy megadott kapcsolati karakterlánccal, vagy importálhatja a projektet. a Project Online-ból. A cikk hatókörének megfelelően az Aspose.Tasks Cloud SDK for .NET-ot fogjuk használni, amely letölthető a NuGet és a GitHub oldalakon. Kérjük, hajtsa végre a következő parancsot a terminálban az SDK NuGet-en keresztüli telepítéséhez:
nuget install Aspose.Tasks-Cloud
Az SDK NuGet csomagkezelőben való közvetlen telepítéséhez hajtsa végre a következő parancsot:
PM> Install-Package Aspose.Tasks-Cloud
Most létre kell hoznunk egy ingyenes előfizetési fiókot az Aspose.Cloud dashboard oldal meglátogatásával. Használja GitHub- vagy Google-fiókját a regisztrációhoz, vagy kattintson az Új fiók létrehozása lehetőségre, és szerezze be az ügyfél hitelesítő adatait.
MPP konvertálása XML-be C#-ban
Kövesse az alábbi lépéseket az átalakítási művelet C# .NET használatával történő végrehajtásához
- Először is létre kell hoznunk egy TasksApi objektumot, miközben argumentumként adjuk át a ClientSecret és a ClientId adatokat.
- Másodszor töltse be az MPP tartalmát a FileStream példányba
- Most hozzon létre egy PostCreateRequest osztályú objektumot, amelyhez egy fájlnév és egy MPP-tartalmat tartalmazó Stream példány szükséges
- Hívja a TasksApi UploadFile(…) metódusát, hogy feltölthessen egy fájlt a felhőtárhelyre
- Ezután hozzon létre egy objektumot a GetTaskDocumentWithFormatRequest osztályból
- Adja meg az XML értéket a ProjectFileFormat felsorolásból, és rendelje hozzá az értéket a GetTaskDocumentWithFormatRequest objektum Format tulajdonságához
- Most hívja meg a GetTaskDocumentWithFormat(…) metódust az átalakítási művelet végrehajtásához
- Mivel az utolsó lépés kimenete a Stream példányban van elmentve, a File.Create objektumot kell használnunk a kimenet helyi meghajtóra mentéséhez. A részletek a saveToDisk(..) egyéni metódusban láthatók.
// Szerezze le a ClientID-t a https://dashboard.aspose.cloud/ webhelyről
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";
// Hozzon létre TasksApi-példányt
TasksApi tasksApi = new TasksApi(clientSecret, clientID);
// adja meg az MPP fájl nevét
String inputFile = "Home move plan.mpp";
// az eredményül kapott XML fájlnév
String resultant = "Converted.xml";
try
{
// beolvassa a projektdokumentumot a helyi rendszerből a stream példányba
using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
{
var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
// fájl feltöltése felhőtárhelyre
tasksApi.UploadFile(uploadFileRequest);
}
// hozzon létre MPP fájl konverziós kérést
var request = new GetTaskDocumentWithFormatRequest();
// adja meg a bemeneti MPP-nevet a felhőtárhelyről
request.Name = inputFile;
// állítsa be az XML-t eredő formátumként
request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
// Ha a paraméter igaz, a HTML-források külön fájlként és
// visszaküldte a kapott html fájllal együtt zip-csomagként.
request.ReturnAsZipArchive = false;
// dokumentumkonverziós művelet végrehajtása
Stream response = tasksApi.GetTaskDocumentWithFormat(request);
if (response != null)
{
Console.WriteLine("Successfully converted MPP to XML !");
}
// egyéni módszer az eredmény fájl helyi rendszermeghajtóra való mentéséhez
saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
// módszer a streamtartalom fájlobjektumként való mentésére
static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
A fenti példában használt mintafájlok a Home move plan.mpp és a Converted.xml fájlokban találhatók.
MPP-ből XML-be cURL-parancsok használatával
A cURL parancsok kiváló mechanizmust biztosítanak a REST API-k eléréséhez a parancssori terminálon keresztül. Mivel az Aspose.Tasks Cloud is a REST elvek szerint készül, így cURL parancsokkal is elérhetjük az API-t. Mivel azonban az API-k csak felhatalmazott személyek számára érhetők el, az ügyfél-azonosító és az ügyféltitkos adatok alapján létre kell hoznunk egy JWT hozzáférési tokent. Kérjük, hajtsa végre a következő parancsot a JWT hozzáférési jogkivonat generálásához.
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"
Az MPP-fájl felhőtárhelyre való feltöltéséhez hajtsa végre a következő cURL parancsot.
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":{}}
Végül hívja meg a következő parancsot, hogy végrehajtsa az MPP átalakítást XML formátumba, és mentse a kimenetet a helyi meghajtóra (a megadott útvonalon).
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
Következtetés
A cikk megosztotta a Microsoft Project fájl XML formátumba konvertálásával kapcsolatos részleteket a C# .NET kódrészlet használatával. Továbbá kérjük, vegye figyelembe, hogy az összes Cloud SDK-t MIT licenc alatt fejlesztjük, így teljes kódrészletük letölthető a GitHub oldalról. Ha bármilyen problémába ütközik az API használata során, vagy bármilyen kapcsolódó kérdése van, forduljon hozzánk bizalommal az Ingyenes terméktámogatási fórumon.
Kapcsolódó cikkek
Azt is javasoljuk, hogy látogassa meg a következő linkeket, ha többet szeretne megtudni erről