ایجاد جداول در اسناد word با استفاده از پایتون

جداول معمولاً در اسناد Word برای سازماندهی اطلاعات در یک ساختار شبکه مانند استفاده می شوند. آنها به شما اجازه می دهند اطلاعات را در قالب ردیف و ستون خلاصه کنید. در این مقاله نحوه ایجاد جدول در اسناد ورد به صورت برنامه نویسی با استفاده از پایتون را خواهید آموخت. علاوه بر این، مقاله نحوه ایجاد جداول تودرتو یا شبیه سازی جدول موجود در اسناد Word را پوشش می دهد.

کتابخانه Python برای ایجاد جداول در اسناد Word

برای کار با جداول در اسناد ورد، از Aspose.Words برای Python استفاده می کنیم. این کتابخانه برای ایجاد و دستکاری اسناد Word به صورت پویا از داخل برنامه های پایتون طراحی شده است. با استفاده از دستور pip زیر می توانید کتابخانه را از PyPI نصب کنید.

pip install aspose-words

ایجاد یک جدول در یک سند Word در پایتون

در زیر مراحل ایجاد جدول در سند Word DOCX با استفاده از پایتون آمده است.

  • یک شی از کلاس Document ایجاد کنید.
  • یک شی از کلاس DocumentBuilder ایجاد کنید.
  • یک جدول را با استفاده از متد DocumentBuilder.startable() شروع کنید و مرجع جدول را در یک شیء دریافت کنید.
  • یک سلول را با استفاده از روش DocumentBuilder.insertcell() وارد کنید.
  • با استفاده از ویژگی DocumentBuilder.cellformat قالب بندی سلول را تنظیم کنید.
  • تناسب خودکار را با استفاده از روش autofit (aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS) تنظیم کنید.
  • تنظیم تراز سلول
  • با استفاده از متد ()DocumentBuilder.write متن را در سلول وارد کنید.
  • در صورت نیاز، درج سلول ها و متن را در سلول ها تکرار کنید.
  • هنگامی که درج سلول ها را کامل کردید، یک ردیف را پایان دهید.
  • وقتی تمام سطرها را وارد کردید، جدول را پایان دهید.
  • سند Word را با استفاده از متد ()Document.save ذخیره کنید.

نمونه کد زیر نحوه ایجاد جدول در اسناد DOCX با استفاده از پایتون را نشان می دهد.

import aspose.words as aw

# یک سند Word جدید ایجاد کنید.
doc = aw.Document()

# ایجاد سند ساز
builder = aw.DocumentBuilder(doc)

# میز را شروع کنید.
table = builder.start_table()

# درج سلول
builder.insert_cell()

# قالب بندی گسترده جدول باید پس از وجود حداقل یک ردیف در جدول اعمال شود.
table.left_indent = 20.0

# ارتفاع را تنظیم کرده و قانون ارتفاع را برای ردیف سرصفحه تعریف کنید.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

# تنظیمات تراز و فونت را تنظیم کنید.
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")

# ما نیازی به تعیین عرض این سلول نداریم زیرا از سلول قبلی به ارث رسیده است.
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.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER

# ارتفاع را بازنشانی کنید و یک قاعده ارتفاع متفاوت برای بدنه جدول تعریف کنید.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()

# بازنشانی قالب بندی فونت
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("table_formatted.docx")

تصویر زیر اسکرین شات جدولی است که با استفاده از نمونه کد بالا ایجاد کرده ایم.

Table in a Word DOCX Document

Table in a Word DOCX Document

یک جدول تودرتو در یک سند Word در پایتون ایجاد کنید

Aspose.Words برای Python همچنین به شما امکان می دهد یک جدول تودرتو به طور یکپارچه ایجاد کنید. به عبارت دیگر، شما می توانید یک جدول جدید در یک سلول از جدول ایجاد کنید. مراحل زیر برای ایجاد یک جدول تودرتو در یک فایل Word DOCX است.

  • یک شی از کلاس Document ایجاد کنید.
  • یک شی از کلاس DocumentBuilder ایجاد کنید.
  • یک جدول را با استفاده از متد DocumentBuilder.startable() شروع کنید و مرجع جدول را در یک شیء دریافت کنید.
  • یک سلول را با استفاده از متد DocumentBuilder.insertcell() وارد کنید و مرجع سلول در یک شی را دریافت کنید.
  • با استفاده از متد ()DocumentBuilder.write متن را در سلول وارد کنید.
  • در صورت نیاز، درج سلول ها و متن را در سلول ها تکرار کنید.
  • وقتی تمام سطرها را وارد کردید، جدول را پایان دهید.
  • با استفاده از روش DocumentBuilder.moveto(Cell.firstparagraph) کنترل را به داخل سلول مورد نظر منتقل کنید.
  • با قرار دادن سلول ها جدول دیگری ایجاد کنید و پس از اتمام جدول را پایان دهید.
  • سند Word را با استفاده از متد ()Document.save ذخیره کنید.

نمونه کد زیر نحوه ایجاد یک جدول تودرتو در یک سند DOCX با استفاده از پایتون را نشان می دهد.

import aspose.words as aw

# یک سند Word جدید ایجاد کنید.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# درج سلول
cell = builder.insert_cell()
builder.writeln("Outer Table Cell 1")

builder.insert_cell()
builder.writeln("Outer Table Cell 2")

# این فراخوانی برای ایجاد یک جدول تودرتو در اولین جدول مهم است. 
# بدون این فراخوانی، سلول های درج شده در زیر به جدول بیرونی اضافه می شوند.
builder.end_table()

# به خانه اول جدول بیرونی بروید.
builder.move_to(cell.first_paragraph)

# میز داخلی را بسازید.
builder.insert_cell()
builder.writeln("Inner Table Cell 1")
builder.insert_cell()
builder.writeln("Inner Table Cell 2")
builder.end_table()

# سند را ذخیره کنید.
doc.save("table_nested.docx")

خروجی نمونه کد بالا در زیر آمده است.

Nested Table in a Word Document

Nested Table in a Word Document

کلون کردن یک جدول موجود در یک سند Word در پایتون

شما همچنین می توانید یک جدول موجود در یک سند Word را شبیه سازی کنید. مراحل زیر برای انجام این عملیات آورده شده است.

  • سند را با استفاده از کلاس Document بارگیری کنید.
  • با استفاده از روش Document.getchild(NodeType.TABLE، int، boolean).astable() مرجع جدول را در یک شیء دریافت کنید.
  • روش clone(True).astable() را با استفاده از شی جدول فراخوانی کنید و مرجع جدول کلون شده را در یک شی دیگر دریافت کنید.
  • جدول کلون شده را با استفاده از روش ()Table.parentnode.insertafter درج کنید.
  • با استفاده از روش Table.parentnode.insertafter(Paragraph(Document)، Table) یک پاراگراف خالی بین جداول درج کنید.
  • سند Word را با استفاده از متد ()Document.save ذخیره کنید.

نمونه کد زیر نحوه کلون کردن جدول در سند Word DOCX را با استفاده از پایتون نشان می دهد.

import aspose.words as aw

# سند Word را بارگیری کنید.
doc = aw.Document("table_formatted.docx")

# دریافت مرجع جدول مورد نظر
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# جدول را کلون کنید و بعد از جدول اصلی در سند وارد کنید.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# یک پاراگراف خالی بین دو جدول درج کنید،
# یا در غیر این صورت پس از ذخیره کردن، آنها را به یکی تبدیل می کنند.
table.parent_node.insert_after(aw.Paragraph(doc), table)

# سند را ذخیره کنید.
doc.save("table_clone.docx")

تصویر زیر جدول کلون شده را در یک سند Word نشان می دهد.

Cloned Table in a Word Document

Cloned Table in a Word Document

مجوز API رایگان دریافت کنید

می‌توانید برای استفاده از Aspose.Words برای پایتون بدون محدودیت ارزیابی، مجوز موقت دریافت کنید.

نتیجه

در این مقاله نحوه ایجاد جداول در اسناد ورد با استفاده از پایتون را یاد گرفتید. علاوه بر این، نحوه ایجاد جداول تو در تو یا شبیه سازی جداول موجود در اسناد Word را به صورت پویا مشاهده کرده اید. علاوه بر این، می‌توانید از مستندات Aspose.Words برای Python دیدن کنید تا سایر ویژگی‌ها را بررسی کنید. در صورت وجود هرگونه سوال، از طریق [تالار گفتمان6 ما را در جریان بگذارید.

همچنین ببینید

اطلاعات: اگر زمانی نیاز به دریافت یک سند Word از یک ارائه پاورپوینت دارید، می توانید از مبدل Aspose Presentation to Word Document استفاده کنید.