สร้างตารางในเอกสาร word โดยใช้ python

ตารางมักใช้ในเอกสาร Word เพื่อจัดระเบียบข้อมูลในโครงสร้างแบบกริด ช่วยให้คุณสามารถสรุปข้อมูลในรูปแบบของแถวและคอลัมน์ ในบทความนี้ คุณจะได้เรียนรู้วิธีสร้างตารางในเอกสาร Word โดยทางโปรแกรมโดยใช้ Python นอกจากนี้ บทความจะกล่าวถึงวิธีการสร้างตารางที่ซ้อนกันหรือโคลนตารางที่มีอยู่ในเอกสาร Word

Python Library เพื่อสร้างตารางในเอกสาร Word

ในการทำงานกับตารางในเอกสาร Word เราจะใช้ Aspose.Words for Python ไลบรารีได้รับการออกแบบมาเพื่อสร้างและจัดการเอกสาร Word แบบไดนามิกจากภายในแอปพลิเคชัน Python คุณสามารถติดตั้งไลบรารีได้จาก PyPI โดยใช้คำสั่ง pip ต่อไปนี้

pip install aspose-words

สร้างตารางในเอกสาร Word ด้วย Python

ต่อไปนี้เป็นขั้นตอนในการสร้างตารางในเอกสาร Word DOCX โดยใช้ Python

  • สร้างวัตถุของคลาสเอกสาร
  • สร้างวัตถุของคลาส DocumentBuilder
  • เริ่มตารางโดยใช้เมธอด DocumentBuilder.starttable() และรับข้อมูลอ้างอิงของตารางในวัตถุ
  • แทรกเซลล์โดยใช้เมธอด DocumentBuilder.insertcell()
  • ตั้งค่าการจัดรูปแบบของเซลล์โดยใช้คุณสมบัติ DocumentBuilder.cellformat
  • ตั้งค่าการปรับให้พอดีอัตโนมัติโดยใช้เมธอด autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS)
  • กำหนดการจัดตำแหน่งของเซลล์
  • แทรกข้อความลงในเซลล์โดยใช้เมธอด DocumentBuilder.write()
  • ทำซ้ำการแทรกเซลล์และข้อความลงในเซลล์ตามต้องการ
  • จบแถวเมื่อคุณแทรกเซลล์เสร็จแล้ว
  • จบตารางเมื่อคุณแทรกแถวทั้งหมดแล้ว
  • บันทึกเอกสาร Word โดยใช้วิธี Document.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างตารางในเอกสาร DOCX โดยใช้ Python

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")

ต่อไปนี้เป็นภาพหน้าจอของตารางที่เราสร้างขึ้นโดยใช้ตัวอย่างโค้ดด้านบน

สร้างตารางที่ซ้อนกันในเอกสาร Word ใน Python

Aspose.Words for Python ยังช่วยให้คุณสร้างตารางที่ซ้อนกันได้อย่างลงตัว กล่าวคือ คุณสามารถสร้างตารางใหม่ภายในเซลล์ของตารางได้ ต่อไปนี้เป็นขั้นตอนในการสร้างตารางที่ซ้อนกันในไฟล์ Word DOCX

  • สร้างวัตถุของคลาสเอกสาร
  • สร้างวัตถุของคลาส DocumentBuilder
  • เริ่มตารางโดยใช้เมธอด DocumentBuilder.starttable() และรับข้อมูลอ้างอิงของตารางในวัตถุ
  • แทรกเซลล์โดยใช้เมธอด DocumentBuilder.insertcell() และรับการอ้างอิงของเซลล์ในวัตถุ
  • แทรกข้อความลงในเซลล์โดยใช้เมธอด DocumentBuilder.write()
  • ทำซ้ำการแทรกเซลล์และข้อความลงในเซลล์ตามต้องการ
  • จบตารางเมื่อคุณแทรกแถวทั้งหมดแล้ว
  • ย้ายตัวควบคุมภายในเซลล์ที่ต้องการโดยใช้เมธอด DocumentBuilder.moveto(Cell.firstparagraph)
  • สร้างตารางใหม่โดยการแทรกเซลล์และสิ้นสุดตารางเมื่อเสร็จสิ้น
  • บันทึกเอกสาร Word โดยใช้วิธี Document.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างตารางซ้อนในเอกสาร DOCX โดยใช้ Python

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")

ต่อไปนี้คือเอาต์พุตของตัวอย่างโค้ดด้านบน

โคลนตารางที่มีอยู่ในเอกสาร Word ใน Python

คุณยังสามารถโคลนตารางที่มีอยู่ในเอกสาร Word ต่อไปนี้เป็นขั้นตอนในการดำเนินการนี้

  • โหลดเอกสารโดยใช้คลาส Document
  • รับการอ้างอิงตารางในวัตถุโดยใช้เมธอด Document.getchild(NodeType.TABLE, int, boolean).astable()
  • โทร clone(True).astable() โดยใช้วัตถุของตารางและรับการอ้างอิงของตารางโคลนในวัตถุอื่น
  • แทรกตารางที่โคลนโดยใช้เมธอด Table.parentnode.insertafter()
  • แทรกย่อหน้าว่างระหว่างตารางโดยใช้เมธอด Table.parentnode.insertafter(ย่อหน้า(เอกสาร), ตาราง)
  • บันทึกเอกสาร Word โดยใช้วิธี Document.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการโคลนตารางในเอกสาร Word DOCX โดยใช้ Python

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

รับใบอนุญาต API ฟรี

คุณสามารถรับ ใบอนุญาตชั่วคราว เพื่อใช้ Aspose.Words for Python ได้โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีสร้างตารางในเอกสาร Word โดยใช้ Python ยิ่งไปกว่านั้น คุณได้เห็นวิธีสร้างตารางที่ซ้อนกันหรือโคลนตารางที่มีอยู่ในเอกสาร Word แบบไดนามิก นอกจากนี้ คุณสามารถไปที่ เอกสารประกอบ ของ Aspose.Words for Python เพื่อสำรวจคุณสมบัติอื่นๆ ในกรณีที่มีคำถามใดๆ โปรดแจ้งให้เราทราบผ่าน ฟอรัม ของเรา

ดูสิ่งนี้ด้วย

ข้อมูล: หากคุณต้องการรับเอกสาร Word จากงานนำเสนอ PowerPoint คุณสามารถใช้ตัวแปลง Aspose Presentation to Word Document ได้