Knowledgebase

الجداول في بايثون | Aspose

في هذه المقالة سنعمل مع الجداول في بايثون، وسنظهر لك أسهل طريقة لإنشاء جدول ومعالجة البيانات داخل الجدول. باستخدام واجهة برمجة التطبيقات الخاصة بنا، يمكنك تعديل الجداول وتصديرها إلى صيغ مختلفة، مثل Word وExcel وPDF وغيرها.
سنقدم لك Aspose.Words for Python via .NET، وسنركز على إنشاء وإدراج الجداول باستخدام هذه الواجهة.

الجداول في بايثون

Aspose.Words for Python via .NET هي مكتبة فئات مصممة لقراءة ومعالجة المستندات من أنواع متعددة مثل Microsoft Word (DOCX, DOC, ODT)، الويب (Markdown, HTML)، PDF، وغيرها. باستخدام هذه الواجهة في بايثون، يمكنك إنشاء وتحرير وعرض وتحويل ملفات Word إلى صيغ متعددة، إنشاء تقارير، وتصور بياناتك دون الحاجة إلى برامج خارجية.
أكثر من 100 فئة بايثون لمعالجة المستندات وتنسيق البيانات في متناول يدك.

العمل مع الجداول في بايثون

تسمح الجداول بتنظيم كميات كبيرة من المعلومات وعرضها في بنية شبكية تتكون من صفوف وأعمدة. وهي مفيدة جدًا عند عرض بيانات مجدولة لأنها توفر تحكمًا أفضل في تصميم المحتوى.
الجداول هي مجموعات منظمة من البيانات مكوّنة من صفوف وأعمدة. وهي مدعومة بالكامل في مكتبتنا، ويمكنك بسهولة تحرير الجداول، تعديلها، إضافة أو إزالة جداول.
فيما يلي سنوضح لك كيفية إنشاء جدول جديد باستخدام بايثون، وفي وثائقنا يمكنك الاطلاع على كيفية تطبيق التنسيق ، العمل مع TableStyle ، العمل مع الأعمدة والصفوف ، ودمج وتقسيم الجداول .

إنشاء جداول في بايثون

تقدم مكتبتنا طرقًا مختلفة لإنشاء جداول جديدة داخل المستند، وفي هذه المقالة سنستعرض كيفية استخدام بعض هذه الطرق.
الجدول الذي يتم إنشاؤه حديثًا يحتوي على قيم مشابهة للقيم الافتراضية في Microsoft Word.

خاصية الجدول في بايثون

يمكنك إدراج جدول باستخدام فئة DocumentBuilder ، والطريقة التالية لبناء الجدول:
DocumentBuilder.start_table
DocumentBuilder.insert_cell
DocumentBuilder.end_row
DocumentBuilder.end_table
DocumentBuilder.writeln

طرق بناء الجدول في بايثون

إنشاء جدول في بايثون عبر 7 خطوات:

  1. ابدأ الجدول باستخدام DocumentBuilder.start_table.
  2. استخدم DocumentBuilder.insert_cell لإدراج خلية داخل الجدول، واستخدم DocumentBuilder.cell_format لتحديد تنسيق الخلية.
  3. استخدم DocumentBuilder لإدراج محتوى الخلية.
  4. كرر الخطوتين 2 و3 حتى تكمل الصف.
  5. يمكنك استدعاء طريقة DocumentBuilder.end_row لإنهاء الصف واستخدام DocumentBuilder.row_format لتنسيق الصف.
  6. بعد ذلك، كرر الخطوات من 2 إلى 5 حتى تكمل الجدول.
  7. استخدم طريقة DocumentBuilder.end_table لإنهاء إنشاء الجدول.

المزيد من التفاصيل حول فئة DocumentBuilder والطرق الخاصة بإنشاء الجداول موضحة في وثائقنا .

في المثال أدناه يمكنك رؤية كيفية إنشاء جدول بسيط بالتنسيق الافتراضي باستخدام DocumentBuilder.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
    
# Start building the table.
builder.start_table()
builder.insert_cell()
builder.write("Row 1, Cell 1 Content.")
    
# Build the second cell.
builder.insert_cell()
builder.write("Row 1, Cell 2 Content.")
    
# Call the following method to end the row and start a new row.
builder.end_row()

# Build the first cell of the second row.
builder.insert_cell()
builder.write("Row 2, Cell 1 Content")

# Build the second cell.
builder.insert_cell()
builder.write("Row 2, Cell 2 Content.")
builder.end_row()

# Signal that we have finished building the table.
builder.end_table()

doc.save(docs_base.artifacts_dir + "WorkingWithTables.create_simple_table.docx")

إنشاء جدول منسق باستخدام DocumentBuilder كما هو موضح في المثال التالي.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

table = builder.start_table()
builder.insert_cell()

# Table wide formatting must be applied after at least one row is present in the table.
table.left_indent = 20.0

# Set height and define the height rule for the header row.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

builder.cell_format.shading.background_pattern_color = drawing.Color.from_argb(198, 217, 241)
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.font.size = 16
builder.font.name = "Arial"
builder.font.bold = True

builder.cell_format.width = 100.0
builder.write("Header Row,\n Cell 1")

# We don't need to specify this cell's width because it's inherited from the previous cell.
builder.insert_cell()
builder.write("Header Row,\n Cell 2")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Header Row,\n Cell 3")
builder.end_row()

builder.cell_format.shading.background_pattern_color = drawing.Color.white
builder.cell_format.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER

# Reset height and define a different height rule for table body.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()
    
# Reset font formatting.
builder.font.size = 12
builder.font.bold = False

builder.write("Row 1, Cell 1 Content")
builder.insert_cell()
builder.write("Row 1, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 1, Cell 3 Content")
builder.end_row()

builder.insert_cell()
builder.cell_format.width = 100.0
builder.write("Row 2, Cell 1 Content")

builder.insert_cell()
builder.write("Row 2, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 2, Cell 3 Content.")
builder.end_row()
builder.end_table()

doc.save(docs_base.artifacts_dir + "WorkingWithTables.formatted_table.docx")

إدراج جدول موجود

إذا كان لديك جدول بالفعل في المستند وتريد إضافة نسخة من هذا الجدول لإجراء بعض التعديلات، فإن أسهل طريقة لتكرار جدول هي استخدام طريقة Table.clone للحفاظ على جميع التنسيقات.
في المثال أدناه يمكنك رؤية كيفية إدراج جدول، وإذا كنت بحاجة إلى ملف القالب لهذا المثال، يمكنك تنزيله من هنا .

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Tables.docx")

table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Clone the table and insert it into the document after the original.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# Insert an empty paragraph between the two tables,
# or else they will be combined into one upon saving this has to do with document validation.
table.parent_node.insert_after(aw.Paragraph(doc), table)
    
doc.save(docs_base.artifacts_dir + "WorkingWithTables.clone_complete_table.docx")

إذا كان لديك أسئلة حول الجداول، أو منتجات Aspose.Words for Python via .NET وتحتاج إلى مساعدة من مطورينا في الدعم المدفوع لتطبيق واجهة برمجة التطبيقات في مشروعك، لا تتردد في الاتصال بنا .