Microsoft Project یکی از محبوب ترین و گسترده ترین نرم افزارهای مدیریت پروژه است. این نرم افزار به شما امکان می دهد پروژه ها را برنامه ریزی کنید، وظایف را تعیین کنید، منابع و گردش کار را مدیریت کنید، گزارش ایجاد کنید، و غیره. با این حال، MS Project فرصتی برای باز کردن یا ویرایش فایل فرمت MPP برای کاربران ثبت نام نشده فراهم نمی کند. این بدان معنی است که اگر مجوز Microsoft Project خریداری شده ندارید، نمی توانید با فایل های MPP کار کنید. بنابراین هنگام به اشتراک گذاری فایل های پروژه، گیرنده باید یک اشتراک MS Project داشته باشد، حتی اگر فقط بخواهد آن را مشاهده کند. بنابراین، تبدیل فایل MPP به XML می تواند راه حل خوبی باشد.
- Microsoft Project File Conversion API
- تبدیل MPP به XML در سی شارپ
- MPP به XML با استفاده از دستورات cURL
Microsoft Project File Conversion API
Aspose.Tasks Cloud یک API REST ما است که ویژگی هایی را برای ایجاد، پردازش و همچنین تبدیل فایل های مدیریت پروژه به [فرمت های فایل پشتیبانی شده] مختلف ارائه می دهد. برای پردازش فایل پروژه، میتوانید فایل را از فضای ذخیرهسازی ابری بارگیری کنید، پروژه را از فرمت primavera DB (primavera SQLite.db یا primavera XML) وارد کنید و پروژه را از پایگاه داده با یک رشته اتصال مشخص وارد کنید یا پروژه را وارد کنید. از پروژه آنلاین با توجه به محدوده این مقاله، ما قصد داریم از Aspose.Tasks Cloud SDK برای .NET استفاده کنیم که برای دانلود در NuGet و GitHub در دسترس است. لطفاً برای نصب SDK از طریق NuGet دستور زیر را در ترمینال اجرا کنید:
nuget install Aspose.Tasks-Cloud
برای نصب مستقیم SDK در مدیریت بسته NuGet، لطفاً دستور زیر را اجرا کنید:
PM> Install-Package Aspose.Tasks-Cloud
اکنون باید با مراجعه به Aspose.Cloud dashboard یک حساب اشتراک رایگان ایجاد کنیم. از حساب GitHub یا Google خود برای ثبت نام استفاده کنید یا بر روی ایجاد یک حساب جدید کلیک کنید و اعتبار مشتری خود را دریافت کنید.
تبدیل MPP به XML در C#
لطفاً مراحل مشخص شده در زیر را برای انجام عملیات تبدیل با استفاده از C#.NET دنبال کنید
- ابتدا باید یک شی TasksApi ایجاد کنیم و جزئیات ClientSecret و ClientId را به عنوان آرگومان ارسال کنیم.
- در مرحله دوم، محتوای MPP را در نمونه FileStream بارگیری کنید
- اکنون یک شی از کلاس PostCreateRequest ایجاد کنید که به نام فایل و نمونه جریانی حاوی محتوای MPP نیاز دارد.
- برای آپلود فایل در فضای ذخیره سازی ابری، روش UploadFile(…) TasksApi را فراخوانی کنید
- سپس یک شی از کلاس GetTaskDocumentWithFormatRequest ایجاد کنید
- مقدار XML را از Enumeration ProjectFileFormat مشخص کنید و مقدار را به ویژگی Format شی GetTaskDocumentWithFormatRequest اختصاص دهید.
- اکنون برای انجام عملیات تبدیل، متد GetTaskDocumentWithFormat(…) را فراخوانی کنید
- از آنجایی که خروجی آخرین مرحله در نمونه Stream ذخیره می شود، باید از شی File.Create برای ذخیره خروجی در درایو محلی استفاده کنیم. جزئیات را می توان در روش سفارشی saveToDisk(..) مشاهده کرد.
// ClientID را از https://dashboard.aspose.cloud/ دریافت کنید
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";
// نمونه TasksApi را ایجاد کنید
TasksApi tasksApi = new TasksApi(clientSecret, clientID);
// نام فایل MPP را وارد کنید
String inputFile = "Home move plan.mpp";
// نام فایل XML حاصل
String resultant = "Converted.xml";
try
{
// سند پروژه را از سیستم محلی به نمونه جریان بخوانید
using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
{
var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
// آپلود فایل در فضای ذخیره سازی ابری
tasksApi.UploadFile(uploadFileRequest);
}
// درخواست تبدیل فایل MPP را ایجاد کنید
var request = new GetTaskDocumentWithFormatRequest();
// نام MPP ورودی را از فضای ذخیره سازی ابری مشخص کنید
request.Name = inputFile;
// XML را به عنوان فرمت نتیجه تنظیم کنید
request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
// اگر پارامتر درست باشد، منابع HTML به عنوان فایل های جداگانه و
// به همراه فایل html حاصل به عنوان یک بسته فشرده بازگردانده شد.
request.ReturnAsZipArchive = false;
// انجام عملیات تبدیل سند
Stream response = tasksApi.GetTaskDocumentWithFormat(request);
if (response != null)
{
Console.WriteLine("Successfully converted MPP to XML !");
}
// روش سفارشی برای ذخیره فایل حاصل در درایو سیستم محلی
saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
// روشی برای ذخیره محتوای جریان به عنوان شی فایل
static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
فایل های نمونه استفاده شده در مثال بالا را می توان در Home move plan.mpp و Converted.xml پیدا کرد.
MPP به XML با استفاده از دستورات cURL
دستورات cURL مکانیزم عالی برای دسترسی به API های REST از طریق ترمینال خط فرمان فراهم می کند. از آنجایی که Aspose.Tasks Cloud نیز طبق اصول REST توسعه یافته است، بنابراین ما می توانیم با استفاده از دستورات cURL نیز به API دسترسی داشته باشیم. اما از آنجایی که API ها فقط برای افراد مجاز قابل دسترسی هستند، بنابراین بر اساس Client ID و جزئیات Client Secret، باید یک نشانه دسترسی JWT ایجاد کنیم. لطفاً دستور زیر را برای تولید توکن دسترسی 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"
برای آپلود فایل MPP در فضای ذخیره سازی ابری، لطفا دستور 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":{}}
در نهایت دستور زیر را فراخوانی کنید تا تبدیل MPP به فرمت XML انجام شود و خروجی در درایو محلی (در مسیر مشخص شده) ذخیره شود.
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
نتیجه گیری
این مقاله جزئیات نحوه تبدیل فایل Microsoft Project به XML با استفاده از قطعه کد C#.NET را به اشتراک گذاشته است. علاوه بر این، لطفاً توجه داشته باشید که همه SDK های ابری ما تحت مجوز MIT توسعه یافته اند، بنابراین قطعه کد کامل آنها را می توان از GitHub دانلود کرد. در صورتی که هنگام استفاده از API با مشکلی مواجه شدید یا سؤالات مرتبطی دارید، لطفاً از طریق [تالار گفتمان پشتیبانی رایگان محصول11 با ما تماس بگیرید.
مقالات مرتبط
همچنین توصیه می کنیم برای کسب اطلاعات بیشتر به لینک های زیر مراجعه کنید