إنشاء جدول من جدول البيانات
مقدمة
إنشاء الجداول ديناميكيًا من مصادر البيانات مهمة شائعة في العديد من التطبيقات. سواء كنت تُنشئ تقارير أو فواتير أو ملخصات بيانات، فإن ملء جدول بالبيانات برمجيًا يوفر عليك الكثير من الوقت والجهد. في هذا البرنامج التعليمي، سنستكشف كيفية إنشاء جدول من جدول بيانات باستخدام Aspose.Words لجافا. سنقسم العملية إلى خطوات سهلة، لضمان فهمك الواضح لكل جزء.
المتطلبات الأساسية
قبل الغوص في الكود، دعنا نتأكد من أن لديك كل ما تحتاجه للبدء:
مجموعة تطوير جافا (JDK): تأكد من تثبيت JDK على جهازك. يمكنك تنزيله من موقع أوراكل .
Aspose.Words لجافا: ستحتاج إلى مكتبة Aspose.Words. يمكنك تنزيل أحدث إصدار من صفحة إصدارات Aspose .
IDE: بيئة التطوير المتكاملة (IDE) مثل IntelliJ IDEA أو Eclipse ستجعل عملية الترميز أسهل.
المعرفة الأساسية بلغة جافا: ستساعدك المعرفة بمفاهيم برمجة جافا على فهم مقتطفات التعليمات البرمجية بشكل أفضل.
بيانات نموذجية: في هذا البرنامج التعليمي، سنستخدم ملف XML باسم “List of people.xml” لمحاكاة مصدر بيانات. يمكنك إنشاء هذا الملف ببيانات نموذجية للاختبار.
الخطوة 1: إنشاء مستند جديد
أولاً، علينا إنشاء مستند جديد حيث سيكون جدولنا. هذا هو مساحة العمل.
Document doc = new Document();
هنا، نقوم بإنشاء مثيل جديد Document هذا الكائن سيكون بمثابة وثيقة العمل التي سنقوم من خلالها ببناء الجدول الخاص بنا.
الخطوة 2: تهيئة DocumentBuilder
بعد ذلك سوف نستخدم DocumentBuilder الفئة التي تسمح لنا بالتعامل مع المستند بسهولة أكبر.
DocumentBuilder builder = new DocumentBuilder(doc);
ال DocumentBuilder يوفر الكائن طرقًا لإدراج الجداول والنصوص والعناصر الأخرى في المستند.
الخطوة 3: تعيين اتجاه الصفحة
نظرًا لأننا نتوقع أن يكون جدولنا عريضًا، فسنقوم بتعيين اتجاه الصفحة إلى أفقي.
doc.getFirstSection().getPageSetup().setOrientation(Orientation.LANDSCAPE);
تعتبر هذه الخطوة بالغة الأهمية لأنها تضمن أن يتناسب جدولنا بشكل جيد مع الصفحة دون أن يتم قطعه.
الخطوة 4: تحميل البيانات من XML
الآن، نحتاج إلى تحميل بياناتنا من ملف XML إلى DataTable.ومن هنا تأتي بياناتنا.
DataSet ds = new DataSet();
ds.readXml(getMyDir() + "List of people.xml");
DataTable dataTable = ds.getTables().get(0);
هنا، نقرأ ملف XML ونسترد الجدول الأول من مجموعة البيانات. هذا DataTable سوف تحتوي على البيانات التي نريد عرضها في مستندنا.
الخطوة 5: استيراد الجدول من DataTable
الآن يأتي الجزء المثير: استيراد بياناتنا إلى المستند كجدول.
Table table = importTableFromDataTable(builder, dataTable, true);
نحن نسمي هذه الطريقة importTableFromDataTable، مروراً DocumentBuilder، ملكنا DataTable، وقيمة منطقية للإشارة إلى ما إذا كان سيتم تضمين عناوين الأعمدة.
الخطوة 6: تصميم الجدول
بمجرد أن نحصل على طاولتنا، يمكننا تطبيق بعض التصميمات عليها لجعلها تبدو جيدة.
table.setStyleIdentifier(StyleIdentifier.MEDIUM_LIST_2_ACCENT_1);
table.setStyleOptions(TableStyleOptions.FIRST_ROW | TableStyleOptions.ROW_BANDS | TableStyleOptions.LAST_COLUMN);
يطبق هذا الكود نمطًا محددًا مسبقًا على الجدول، مما يعزز جاذبيته البصرية وسهولة قراءته.
الخطوة 7: إزالة الخلايا غير المرغوب فيها
إذا كان لديك أي أعمدة لا تريد عرضها، مثل عمود الصورة، فيمكنك إزالته بسهولة.
table.getFirstRow().getLastCell().removeAllChildren();
تضمن هذه الخطوة أن يعرض جدولنا المعلومات ذات الصلة فقط.
الخطوة 8: حفظ المستند
وأخيرًا، نحفظ مستندنا بالجدول الناتج.
doc.save(getArtifactsDir() + "WorkingWithTables.BuildTableFromDataTable.docx");
يحفظ هذا السطر المستند في الدليل المحدد، مما يسمح لك بمراجعة النتائج.
طريقة importTableFromDataTable
دعونا نلقي نظرة عن كثب على importTableFromDataTable الطريقة. هذه الطريقة مسؤولة عن إنشاء بنية الجدول وملئها بالبيانات.
الخطوة 1: ابدأ الجدول
أولاً، نحتاج إلى بدء جدول جديد في المستند.
Table table = builder.startTable();
يؤدي هذا إلى تهيئة جدول جديد في مستندنا.
الخطوة 2: إضافة عناوين الأعمدة
إذا أردنا تضمين عناوين الأعمدة، نتحقق من importColumnHeadings علَم.
if (importColumnHeadings) {
// تخزين التنسيق الأصلي
boolean boldValue = builder.getFont().getBold();
int paragraphAlignmentValue = builder.getParagraphFormat().getAlignment();
// تعيين تنسيق العنوان
builder.getFont().setBold(true);
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
// إدراج أسماء الأعمدة
for (DataColumn column : dataTable.getColumns()) {
builder.insertCell();
builder.writeln(column.getColumnName());
}
builder.endRow();
// استعادة التنسيق الأصلي
builder.getFont().setBold(boldValue);
builder.getParagraphFormat().setAlignment(paragraphAlignmentValue);
}
يقوم هذا الكتلة من التعليمات البرمجية بتنسيق صف العنوان وإدراج أسماء الأعمدة من DataTable.
الخطوة 3: ملء الجدول بالبيانات
الآن، نقوم بالمرور على كل صف من DataTable لإدراج البيانات في الجدول.
for (DataRow dataRow : (Iterable<DataRow>) dataTable.getRows()) {
for (Object item : dataRow.getItemArray()) {
builder.insertCell();
switch (item.getClass().getName()) {
case "DateTime":
Date dateTime = (Date) item;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMMM d, yyyy");
builder.write(simpleDateFormat.format(dateTime));
break;
default:
builder.write(item.toString());
break;
}
}
builder.endRow();
}
في هذا القسم، سنتعامل مع أنواع مختلفة من البيانات، وتنسيق التواريخ بشكل مناسب أثناء إدراج بيانات أخرى كنص.
الخطوة 4: إنهاء الجدول
وأخيرًا، ننتهي من الجدول بعد إدخال كافة البيانات.
builder.endTable();
يشير هذا الخط إلى نهاية جدولنا، مما يسمح بـ DocumentBuilder لنعلم أننا انتهينا من هذا القسم.
خاتمة
ها قد انتهيت! لقد تعلمت بنجاح كيفية إنشاء جدول من جدول بيانات باستخدام Aspose.Words لجافا. باتباع هذه الخطوات، يمكنك بسهولة إنشاء جداول ديناميكية في مستنداتك استنادًا إلى مصادر بيانات متنوعة. سواء كنت تُنشئ تقارير أو فواتير، ستُبسط هذه الطريقة سير عملك وتُحسّن عملية إنشاء مستنداتك.
الأسئلة الشائعة
ما هو Aspose.Words لـ Java؟
Aspose.Words for Java هي مكتبة قوية لإنشاء مستندات Word ومعالجتها وتحويلها برمجيًا.
هل يمكنني استخدام Aspose.Words مجانًا؟
نعم، يُقدّم Aspose نسخة تجريبية مجانية. يُمكنك تنزيلها من هنا .
كيف أقوم بتنسيق الجداول في Aspose.Words؟
بإمكانك تطبيق الأنماط باستخدام معرفات الأنماط المحددة مسبقًا والخيارات التي توفرها المكتبة.
ما هي أنواع البيانات التي يمكنني إدراجها في الجداول؟
يمكنك إدراج أنواع مختلفة من البيانات، بما في ذلك النصوص والأرقام والتاريخ، والتي يمكن تنسيقها وفقًا لذلك.
أين يمكنني الحصول على الدعم لـ Aspose.Words؟
يمكنك العثور على الدعم وطرح الأسئلة على منتدى Aspose .