การทำงานกับรายการ
รายการในเอกสาร Microsoft Word คือชุดของคุณสมบัติการจัดรูปแบบรายการ รายการต่างๆ สามารถใช้ในเอกสารของคุณเพื่อจัดรูปแบบ จัดเรียง และเน้นข้อความได้ รายการเป็นวิธีที่ดีในการจัดระเบียบข้อมูลในเอกสาร และทำให้ผู้อ่านเข้าใจประเด็นสำคัญได้ง่ายขึ้น
แต่ละรายการสามารถมีได้สูงสุด 9 ระดับ และคุณสมบัติการจัดรูปแบบ เช่น สไตล์ตัวเลข ค่าเริ่มต้น การเยื้อง ตำแหน่งแท็บ ฯลฯ จะถูกกำหนดแยกกันสำหรับแต่ละระดับ
ใน Aspose.Words การทำงานกับรายการจะแสดงโดยโมดูล Lists อย่างไรก็ตาม ออบเจ็กต์ List จะเป็นของคอลเลกชัน ListCollection เสมอ
หัวข้อนี้จะอธิบายวิธีทำงานโดยทางโปรแกรมกับรายการที่ใช้ Aspose.Words
การสร้างรายการโดยใช้การจัดรูปแบบรายการ
Aspose.Words ช่วยให้สร้างรายการได้ง่ายโดยใช้การจัดรูปแบบรายการ DocumentBuilder จัดเตรียมคุณสมบัติ DocumentBuilder.list_format ที่ส่งคืนออบเจ็กต์ ListFormat วัตถุนี้มีหลายวิธีในการเริ่มต้นและสิ้นสุดรายการและเพิ่ม/ลดการเยื้อง รายการทั่วไปใน Microsoft Word มีสองประเภท: สัญลักษณ์แสดงหัวข้อย่อยและลำดับเลข
- หากต้องการเริ่มรายการหัวข้อย่อย ให้โทร ListFormat.apply_bullet_default
- หากต้องการเริ่มรายการลำดับเลข ให้โทร ListFormat.apply_number_default
สัญลักษณ์แสดงหัวข้อย่อยหรือตัวเลขและการจัดรูปแบบจะถูกเพิ่มลงในย่อหน้าปัจจุบันและย่อหน้าเพิ่มเติมทั้งหมดที่สร้างขึ้นโดยใช้ DocumentBuilder จนกว่า ListFormat.remove_numbers จะถูกเรียกให้หยุดการจัดรูปแบบรายการสัญลักษณ์แสดงหัวข้อย่อย
ในเอกสาร Word รายการอาจประกอบด้วยได้ถึงเก้าระดับ การจัดรูปแบบรายการสำหรับแต่ละระดับจะระบุหัวข้อย่อยหรือตัวเลขที่ใช้ เยื้องซ้าย ช่องว่างระหว่างหัวข้อย่อยและข้อความ ฯลฯ วิธีการต่อไปนี้จะเปลี่ยนระดับรายการและใช้คุณสมบัติการจัดรูปแบบของระดับใหม่:
- หากต้องการเพิ่มระดับรายการของย่อหน้าปัจจุบันหนึ่งระดับ ให้โทร ListFormat.list_indent
- หากต้องการลดระดับรายการของย่อหน้าปัจจุบันลงหนึ่งระดับ ให้โทร ListFormat.list_outdent
วิธีการเปลี่ยนระดับรายการและใช้คุณสมบัติการจัดรูปแบบของระดับใหม่
ตัวอย่างด้านล่างแสดงวิธีการสร้างรายการหลายระดับ
# 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) | |
builder.list_format.apply_number_default() | |
builder.writeln("Item 1") | |
builder.writeln("Item 2") | |
builder.list_format.list_indent() | |
builder.writeln("Item 2.1") | |
builder.writeln("Item 2.2") | |
builder.list_format.list_indent() | |
builder.writeln("Item 2.2.1") | |
builder.writeln("Item 2.2.2") | |
builder.list_format.list_outdent() | |
builder.writeln("Item 2.3") | |
builder.list_format.list_outdent() | |
builder.writeln("Item 3") | |
builder.list_format.remove_numbers() | |
doc.save(docs_base.artifacts_dir + "DocumentFormatting.multilevel_list_formatting.docx") |
ระบุการจัดรูปแบบสำหรับระดับรายการ
ออบเจ็กต์ระดับรายการจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อมีการสร้างรายการ ใช้คุณสมบัติและวิธีการของคลาส ListLevel เพื่อควบคุมการจัดรูปแบบของรายการแต่ละระดับ
รายการรีสตาร์ทสำหรับแต่ละส่วน
คุณสามารถรีสตาร์ทรายการสำหรับแต่ละส่วนได้โดยใช้คุณสมบัติ คุณสมบัติ is_restart_at_each_section โปรดทราบว่าตัวเลือกนี้รองรับเฉพาะในรูปแบบเอกสาร RTF, DOC และ DOCX เท่านั้น ตัวเลือกนี้จะถูกเขียนลงใน DOCX เฉพาะเมื่อ OoxmlCompliance สูงกว่า Ecma376 เท่านั้น
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างรายการและเริ่มใหม่สำหรับแต่ละส่วน:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document() | |
doc.lists.add(aw.lists.ListTemplate.NUMBER_DEFAULT) | |
list = doc.lists[0] | |
list.is_restart_at_each_section = True | |
builder = aw.DocumentBuilder(doc) | |
builder.list_format.list = list | |
for i in range(1, 45) : | |
builder.writeln(f"List Item {i}") | |
if i == 15 : | |
builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE) | |
# IsRestartAtEachSection will be written only if compliance is higher then OoxmlComplianceCore.ecma_376. | |
options = aw.saving.OoxmlSaveOptions() | |
options.compliance = aw.saving.OoxmlCompliance.ISO29500_2008_TRANSITIONAL | |
doc.save(docs_base.artifacts_dir + "WorkingWithList.restart_list_at_each_section.docx", options) |