كيفية إنشاء نموذج بيانات ورقة البيانات في C ++ واكتماله
تظهر هذه الدورة كيفية إنشاء دفتر عمل ، وملء الخلايا بالقيم والصيغ ، وتطبيق الأساليب ، وحفظها كملف جداول البيانات باستخدام مكتبة Aspose.Cells FOSS لـ C ++. الفئات الأساسية المعنية هي: Workbook, Worksheet, Cell,، و Style.
خطوة بخطوة دليل
الخطوة 1: إعداد البناء
أضف مكتبة الخلايا FOSS لمشروع CMake الخاص بك وربط النص Aspose.Cells.Foss.Cpp الهدف:
cmake_minimum_required(VERSION 3.15)
project(CreateSpreadsheet CXX)
set(CMAKE_CXX_STANDARD 17)
add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(CreateSpreadsheet main.cpp)
target_link_libraries(CreateSpreadsheet PRIVATE Aspose.Cells.Foss.Cpp)الخطوة 2: تضمين العناوين ووضع مساحة الأسماء
تضمّن عناوين كل فئة من: aspose/cells_foss/ لكل فئة تستخدمها (Workbook.h, Worksheet.h, Cell.h, Style.h, Font.h, Color.h, CellArea.h), ثم افتح الملف. Aspose::Cells_FOSS مساحة الأسماء:
using namespace Aspose::Cells_FOSS;الخطوة 3: قم بإنشاء دفتر عمل وإعطاء اسم للورقة
التثبيت Workbook,، استعادة ورقة العمل الأولى عبر GetWorksheets()[0],، ووضع اسم العرض:
int main() {
Workbook workbook;
Worksheet& sheet = workbook.GetWorksheets()[0];
sheet.SetName("Sales");
return 0;
}الخطوة 4: إضافة قيم الخلية
اتصلوا GetCells()["A1"].PutValue() كتابة سلاسل نصية وقيم رقمية وبلوليانز في خلايا فردية حسب العنوان:
sheet.GetCells()["A1"].PutValue("Product");
sheet.GetCells()["B1"].PutValue("Price");
sheet.GetCells()["A2"].PutValue("Widget");
sheet.GetCells()["B2"].PutValue(9.99);
sheet.GetCells()["A3"].PutValue("Gadget");
sheet.GetCells()["B3"].PutValue(24.99);الخطوة 5: قم بتعيين صيغة
اتصلوا SetFormula() على خلية لتخزين سلسلة صيغ متوافقة مع Excel؛ يتم تقييم الصيغة بواسطة Excel عند فتح الملف:
sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");الخطوة 6: تطبيق تصميم الخلية
احصل على الأسلوب مع Cell::GetStyle(),، وتعديلها، وتطبيقها مع Cell::SetStyle(style):
Style headerStyle = sheet.GetCells()["A1"].GetStyle();
Font font;
font.SetBold(true);
font.SetColor(Color::FromArgb(255, 255, 255, 255));
headerStyle.SetFont(font);
headerStyle.SetPattern(FillPattern::Solid);
headerStyle.SetForegroundColor(Color::FromArgb(255, 34, 120, 212));
sheet.GetCells()["A1"].SetStyle(headerStyle);
sheet.GetCells()["B1"].SetStyle(headerStyle);الخطوة 7: دمج الخلايا
استخدام Cells::Merge لجمع نطاق في خلية واحدة:
CellArea titleArea = CellArea::CreateCellArea("A1", "B1");
sheet.GetCells().Merge(0, 0, 1, 2);الخطوة 8: حفظ دفتر العمل
اتصلوا workbook.Save() مع اسم الملف لكتابة جدول البيانات كملف XLSX، ثم الاتصال Dispose() لتحرير الموارد:
workbook.Save("sales.xlsx");
workbook.Dispose();مشكلات و تصحيحات مشتركة
النمط غير مطبق بعد حفظ دائماً اتصل Cell::SetStyle(style) بعد تعديل كائن النمط. تغيير النماذج المستردة مباشرة لا يطبق التغيرات؛ يجب عليك إعادة ضبطها بشكل صريح.
الصيغة المخزنة كسلسولة حرفية استخدام SetFormula("=SUM(...)") لا .. PutValue("=SUM(...)"). PutValue يعامل الحجة كسلسولة حرفية، وليس صيغة.
الخلية المدمجة لا تعرض بشكل صحيح تأكد من أن معايير المدمج (الصف، العمود، rowCount، columnCounting) تمتد بشكل صحيح إلى النطاق المقصود. لا يتم دعم عمليات دمج متداخلة.
لا يوجد في دفتر العمل أوراق بعد البناء يتم إنشاء ورقة افتراضية دائماً بواسطة: Workbook().اتصل بي GetWorksheets()[0] للوصول اليه.
تخلص من لا يطلق عليه دائماً اتصل workbook.Dispose() لتفريغ الموارد، خاصة في التطبيقات طويلة الأمد.
الأسئلة المتكررة
هل يمكنني إضافة أوراق عمل متعددة إلى دفتر العمل واحد؟?
نعم، استخدمها. Workbook::GetWorksheets() للوصول إلى المجموعة وإضافة الصفحات برمجياً. تأكد من أن كل صفحة لها اسم فريد باستخدام Workbook::EnsureUniqueSheetName().
كيف أعدّ شكل رقم خلية؟?
استخدام Style::SetNumberFormat(format) قبل الاتصال Cell::SetStyle(style). تتبع سلسلة التنسيق النصوص القياسية لتنسيق الأرقام في Excel.
هل يمكنني تطبيق نفس النمط على خلايا متعددة؟?
نعم، احصل على النمط مرة واحدة، و تعديله ثم اتصلي به. SetStyle(style) على كل خلية هدف.
هل يتم تقييم الصيغة عند حفظها؟?
لا. يتم تقييم الصيغة في Excel أو قارئ متوافق عند فتح الملف. تكتب المكتبة سلسلة الصفات إلى الخلية.
كم عدد الصفوف والعمودات التي يمكن أن تحتوي عليها ورقة عمل؟?
تحتوي كل ورقة عمل على بيانات عبر شبكة كاملة من الصفوف والعمود، وفقًا لأبعاد جدول البيانات القياسي.