اکسل یک فرمت محبوب برای به اشتراک گذاری اطلاعات است. ممکن است در موقعیتهایی قرار بگیرید که دادههایی در یک فایل Excel(XLS یا XLSX) دارید که باید آنها را به پایگاه داده وارد کنید. برای این کار، باید فایل اکسل را به فرمت CSV تبدیل کنید. از سوی دیگر، ممکن است داده هایی با فرمت CSV داشته باشید که از یک پایگاه داده صادر شده اند که باید آنها را بیشتر در یک فایل اکسل دستکاری کنید. برای چنین مواردی، باید فایل CSV را به فرمت Excel تبدیل کنید. در این مقاله، نحوه انجام هر دو این تبدیل را به صورت برنامه نویسی با استفاده از ++C یاد خواهید گرفت.
- C++ API برای تبدیل فایلهای اکسل به CSV و فایلهای CSV به فرمت اکسل
- تبدیل فایل های اکسل به فرمت CSV با استفاده از C++
- کاربرگ های اکسل را به فایل های CSV تبدیل کنید
- تبدیل فایل های CSV به فرمت اکسل با استفاده از C++
- مجوز رایگان دریافت کنید
C++ API برای تبدیل فایلهای اکسل به CSV و فایلهای CSV به فرمت اکسل
Aspose.Cells for C++ یک کتابخانه بومی C++ است که به شما امکان میدهد فایلهای Excel را ایجاد، بخوانید و تغییر دهید. علاوه بر این، API از تبدیل فایل های Excel به فرمت CSV و بالعکس پشتیبانی می کند. میتوانید API را از طریق NuGet نصب کنید یا آن را مستقیماً از بخش دانلودها دانلود کنید.
PM> Install-Package Aspose.Cells.Cpp
تبدیل فایل های اکسل به فرمت CSV با استفاده از C++
تبدیل فایل های اکسل به فرمت CSV با Aspose.Cells برای C++ API بسیار آسان است. در زیر مراحل تبدیل فایل های اکسل به فرمت CSV با استفاده از C++ آمده است.
- فایل اکسل را با استفاده از کلاس IWorkbook بارگیری کنید.
- فایل را به صورت CSV با استفاده از IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String filename, Aspose::Cells::SaveFormat saveFormat) روش.
کد زیر نمونه ای برای تبدیل فایل های اکسل به فرمت CSV است.
// مسیر دایرکتوری منبع.
StringPtr srcDir = new String("SourceDirectory\\");
// مسیر دایرکتوری خروجی
StringPtr outDir = new String("OutputDirectory\\");
// فایل اکسل ورودی را بارگیری کنید
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// فایل CSV خروجی را ذخیره کنید
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);
کاربرگ های اکسل را به فایل های CSV تبدیل کنید
اگر فایل اکسل حاوی چندین کاربرگ باشد، مثال قبلی فقط اولین کاربرگ را تبدیل می کند. در صورتی که می خواهید چندین کاربرگ را به فرمت CSV تبدیل کنید، می توانید مراحل زیر را دنبال کنید.
- فایل اکسل را با استفاده از کلاس IWorkbook بارگیری کنید.
- کاربرگ ها را با استفاده از روش IWorkbook->GetIWorksheets() بازیابی کنید.
- از میان کاربرگ های بازیابی شده حلقه بزنید.
- در حلقه، می توانید منطق سفارشی خود را برای تبدیل کاربرگ های خاص به فایل های CSV مشخص کنید. در این نمایش، تمام کاربرگ ها به فایل های CSV تبدیل می شوند.
- کاربرگ مورد نظر برای تبدیل را با استفاده از روش IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) بازیابی کنید.
- یک نمونه از کلاس IWorkbook برای نمایش یک فایل CSV جدید ایجاد کنید.
- کاربرگ بازیابی شده قبلی را با استفاده از IWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy (intrusiveptr) در نمونه کتاب کار جدید کپی کنید.Aspose::Cells::IWorksheet sourceSheet) روش.
- با استفاده از IWorkbook->Save (intrusiveptr) کتاب کار جدید را به عنوان CSV ذخیره کنیدAspose::Cells::Systems::String filename, Aspose::Cells::SaveFormat saveFormat) روش.
کد زیر نمونه ای برای تبدیل کاربرگ های Excel به فایل های CSV با استفاده از C++ است.
// مسیر دایرکتوری منبع.
StringPtr srcDir = new String("SourceDirectory\\");
// مسیر دایرکتوری خروجی
StringPtr outDir = new String("OutputDirectory\\");
// فایل اکسل را بارگیری کنید
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// کاربرگ های کتاب کار را بازیابی کنید.
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// ایجاد شی سازنده رشته برای الحاق رشته ها.
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();
for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
// کاربرگ را برای کپی بردارید
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);
// یک نمونه از کلاس IWorkbook برای نمایش کتاب کار جدید ایجاد کنید
intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();
// کاربرگ بازیابی شده قبلی را در کتاب کار جدید کپی کنید
newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// سازنده رشته را پاک کنید و مسیر خروجی را با الحاق رشته ایجاد کنید.
stringBuilder->Clear();
stringBuilder->Append(outDir);
stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
stringBuilder->Append(sheet);
stringBuilder->Append((StringPtr)new String("_out.csv"));
// فایل CSV خروجی را ذخیره کنید
newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}
تبدیل فایل های CSV به فرمت اکسل با استفاده از C++
در زیر مراحل تبدیل فایلهای CSV به فرمت اکسل با استفاده از C++ آمده است.
- یک نمونه از کلاس ILoadOptions ایجاد کنید.
- یک شی از کلاس IWorkbook با استفاده از نمونه ILoadOptions که قبلاً ایجاد شده است، ایجاد کنید.
- فایل را با فرمت اکسل با استفاده از IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String filename, Aspose::Cells::SaveFormat saveFormat) روش.
کد زیر نمونه ای برای تبدیل فایل های CSV به فرمت اکسل با استفاده از C++ است.
// مسیر دایرکتوری منبع.
StringPtr srcDir = new String("SourceDirectory\\");
// مسیر دایرکتوری خروجی
StringPtr outDir = new String("OutputDirectory\\");
// شی CSV LoadOptions را ایجاد کنید
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);
// فایل اکسل ورودی را بارگیری کنید
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);
// فایل CSV خروجی را ذخیره کنید
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_Xlsx);
مجوز رایگان دریافت کنید
با درخواست [مجوز موقت رایگان] میتوانید API را بدون محدودیت ارزیابی امتحان کنید.
نتیجه
در این مقاله با نحوه تبدیل فایل های اکسل به فرمت CSV و فایل های CSV به فرمت اکسل (XLS/XLSX) با استفاده از C++ آشنا شده اید. Aspose.Cells for C++ یک API گسترده است که بسیاری از ویژگی های اضافی را برای کار با فایل های اکسل فراهم می کند. با استفاده از مستندات رسمی میتوانید API را با جزئیات کاوش کنید. در صورت وجود هرگونه سوال، لطفاً در [تالار گفتمان پشتیبانی رایگان20 با ما تماس بگیرید.