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.
- Aby rozpocząć listę punktowaną, zadzwoń do ListFormat.apply_bullet_default.
- Aby rozpocząć listę numerowaną, zadzwoń do ListFormat.apply_number_default.
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:
- Aby zwiększyć poziom listy bieżącego akapitu o jeden poziom, wywołaj ListFormat.list_indent
- Aby zmniejszyć poziom listy bieżącego akapitu o jeden poziom, wywołaj ListFormat.list_outdent
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) |