การทำงานกับรายการ
รายการในเอกสาร Microsoft Word คือชุดของคุณสมบัติการจัดรูปแบบย่อหน้า สามารถใช้รายการในเอกสารเพื่อจัดโครงสร้าง จัดเรียง และเน้นข้อความได้ รายการเป็นวิธีที่ดีในการจัดระเบียบข้อมูลในเอกสารในลักษณะที่ทำให้ผู้อ่านซึมซับและทำความเข้าใจประเด็นสำคัญได้ง่าย
แต่ละรายการสามารถมีได้สูงสุด 9 ระดับ และคุณสมบัติการจัดรูปแบบ เช่น สไตล์ตัวเลข ค่าเริ่มต้น การเยื้อง ตำแหน่งแท็บ และอื่นๆ จะถูกกำหนดแยกกันสำหรับแต่ละระดับ
ใน Aspose.Words การทำงานกับรายการจะแสดงด้วยเนมสเปซ Lists อย่างไรก็ตาม ออบเจ็กต์ List จะเป็นของ ListCollection เสมอ
บทความนี้จะอธิบายการทำงานเชิงโปรแกรมกับรายการที่ใช้ Aspose.Words
สร้างรายการโดยใช้การจัดรูปแบบรายการ
Aspose.Words ช่วยให้สร้างรายการได้ง่ายโดยใช้การจัดรูปแบบรายการ DocumentBuilder จัดเตรียมคุณสมบัติ ListFormat ที่ส่งคืนออบเจ็กต์ ListFormat วัตถุนี้มีหลายวิธีในการเริ่มต้นและสิ้นสุดรายการและเพิ่ม/ลดการเยื้อง มีรายการทั่วไปสองประเภทใน Microsoft Word: สัญลักษณ์แสดงหัวข้อย่อยและลำดับเลข:
- หากต้องการเริ่มรายการหัวข้อย่อย ให้โทร ApplyBulletDefault
- หากต้องการเริ่มรายการลำดับเลข ให้โทร ApplyNumberDefault
สัญลักษณ์แสดงหัวข้อย่อยหรือตัวเลขและการจัดรูปแบบจะถูกเพิ่มลงในย่อหน้าปัจจุบันและย่อหน้าเพิ่มเติมทั้งหมดที่สร้างขึ้นโดยใช้ DocumentBuilder จนกว่า RemoveNumbers จะถูกเรียกให้หยุดการจัดรูปแบบรายการสัญลักษณ์แสดงหัวข้อย่อย
ในเอกสาร Word รายการอาจประกอบด้วยได้ถึงเก้าระดับ การจัดรูปแบบรายการสำหรับแต่ละระดับจะระบุหัวข้อย่อยหรือตัวเลขที่ใช้ เยื้องซ้าย ช่องว่างระหว่างหัวข้อย่อยและข้อความ ฯลฯ วิธีการต่อไปนี้จะเปลี่ยนระดับรายการและใช้คุณสมบัติการจัดรูปแบบของระดับใหม่:
- หากต้องการเพิ่มระดับรายการของย่อหน้าปัจจุบันหนึ่งระดับ ให้โทร ListIndent
- หากต้องการลดระดับรายการของย่อหน้าปัจจุบันลงหนึ่งระดับ ให้โทร ListOutdent
คุณยังสามารถใช้คุณสมบัติ ListLevelNumber เพื่อรับหรือตั้งค่าระดับรายการสำหรับย่อหน้าได้
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างรายการหลายระดับ:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.ListFormat.ApplyNumberDefault(); | |
builder.Writeln("Item 1"); | |
builder.Writeln("Item 2"); | |
builder.ListFormat.ListIndent(); | |
builder.Writeln("Item 2.1"); | |
builder.Writeln("Item 2.2"); | |
builder.ListFormat.ListIndent(); | |
builder.Writeln("Item 2.2.1"); | |
builder.Writeln("Item 2.2.2"); | |
builder.ListFormat.ListOutdent(); | |
builder.Writeln("Item 2.3"); | |
builder.ListFormat.ListOutdent(); | |
builder.Writeln("Item 3"); | |
builder.ListFormat.RemoveNumbers(); | |
dataDir = dataDir + "DocumentBuilderSetMultilevelListFormatting_out.doc"; | |
doc.Save(dataDir); |
ระบุการจัดรูปแบบสำหรับระดับรายการ
ออบเจ็กต์ระดับรายการจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อมีการสร้างรายการ ใช้คุณสมบัติและวิธีการของคลาส ListLevel เพื่อควบคุมการจัดรูปแบบของรายการแต่ละระดับ
รายการรีสตาร์ทสำหรับแต่ละส่วน
คุณสามารถรีสตาร์ทรายการสำหรับแต่ละส่วนได้โดยใช้คุณสมบัติ IsRestartAtEachSection โปรดทราบว่าตัวเลือกนี้รองรับเฉพาะในรูปแบบเอกสาร RTF, DOC และ DOCX เท่านั้น ตัวเลือกนี้จะถูกเขียนลงใน DOCX เฉพาะเมื่อ OoxmlCompliance สูงกว่า Ecma376 เท่านั้น
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างรายการและเริ่มใหม่สำหรับแต่ละส่วน:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
doc.Lists.Add(ListTemplate.NumberDefault); | |
List list = doc.Lists[0]; | |
// Set true to specify that the list has to be restarted at each section. | |
list.IsRestartAtEachSection = true; | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.ListFormat.List = list; | |
for (int i = 1; i < 45; i++) | |
{ | |
builder.Writeln(String.Format("List Item {0}", i)); | |
// Insert section break. | |
if (i == 15) | |
builder.InsertBreak(BreakType.SectionBreakNewPage); | |
} | |
// IsRestartAtEachSection will be written only if compliance is higher then OoxmlComplianceCore.Ecma376 | |
OoxmlSaveOptions options = new OoxmlSaveOptions(); | |
options.Compliance = OoxmlCompliance.Iso29500_2008_Transitional; | |
dataDir = dataDir + "RestartAtEachSection_out.docx"; | |
// Save the document to disk. | |
doc.Save(dataDir, options); |