Praca z listami

Lista w dokumencie Microsoft Word to zestaw właściwości formatowania listy. List można używać w dokumentach do formatowania, porządkowania i podkreślania tekstu. Listy to świetny sposób organizowania danych w dokumentach i ułatwiają czytelnikom zrozumienie kluczowych punktów

Każda lista może mieć maksymalnie 9 poziomów, a właściwości formatowania, takie jak styl liczb, wartość początkowa, wcięcie, pozycja tabulacji itp. są definiowane osobno dla każdego poziomu.

W Aspose.Words pracę z listami reprezentuje moduł Lists. Jednak obiekt List zawsze należy do kolekcji ListCollection.

W tym temacie opisano, jak programowo pracować z listami przy użyciu formatu Aspose.Words

Tworzenie list poprzez zastosowanie formatowania listy

Aspose.Words umożliwia łatwe tworzenie list poprzez zastosowanie formatowania list. DocumentBuilder udostępnia właściwość DocumentBuilder.list_format, która zwraca obiekt ListFormat. Obiekt ten ma kilka metod rozpoczynania i kończenia listy oraz zwiększania/zmniejszania wcięcia. W Microsoft Word istnieją dwa ogólne typy list: wypunktowane i numerowane.

Punktor lub numer i formatowanie są dodawane do bieżącego akapitu i wszystkich kolejnych akapitów tworzonych przy użyciu formatu DocumentBuilder, dopóki nie zostanie wywołane ListFormat.remove_numbers w celu zatrzymania formatowania listy punktowanej.

W dokumentach programu Word listy mogą składać się z maksymalnie dziewięciu poziomów. Formatowanie listy dla każdego poziomu określa, jaki punktor lub numer jest używany, wcięcie z lewej strony, odstęp między punktorem a tekstem itp. Następujące metody zmieniają poziom listy i stosują właściwości formatowania nowego poziomu:

Metody zmieniają poziom listy i stosują właściwości formatowania nowego poziomu.

Poniższy przykład pokazuje jak zbudować listę wielopoziomową.

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

Określ formatowanie dla poziomu listy

Obiekty na poziomie listy są tworzone automatycznie podczas tworzenia listy. Użyj właściwości i metod klasy ListLevel do kontrolowania formatowania poszczególnych poziomów listy.

Lista ponownego uruchomienia dla każdej sekcji

Możesz zrestartować listę dla każdej sekcji, używając właściwości is_restart_at_each_section właściwość. Należy pamiętać, że ta opcja jest obsługiwana tylko w formatach dokumentów RTF, DOC i DOCX. Ta opcja zostanie zapisana w DOCX tylko wtedy, gdy zgodność Ooxml jest wyższa niż Ecma376.

Poniższy przykład kodu pokazuje, jak utworzyć listę i uruchomić ją ponownie dla każdej sekcji:

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