リストの操作
Microsoft Word ドキュメント内のリストは、リストの書式設定プロパティのセットです。リストを文書内で使用して、テキストの書式設定、配置、強調を行うことができます。リストは文書内のデータを整理するための優れた方法であり、読者が重要なポイントを理解しやすくなります。
各リストには最大 9 レベルを含めることができ、数値スタイル、開始値、インデント、タブ位置などの書式設定プロパティはレベルごとに個別に定義されます。
Aspose.Words では、リストの操作は Lists モジュールによって表されます。ただし、List オブジェクトは常に ListCollection コレクションに属します。
このトピックでは、Aspose.Words を使用してリストをプログラムで操作する方法について説明します。
リストの書式設定を適用してリストを作成する
Aspose.Words を使用すると、リストの書式設定を適用してリストを簡単に作成できます。 DocumentBuilder は、ListFormat オブジェクトを返す DocumentBuilder.list_format プロパティを提供します。このオブジェクトには、リストを開始および終了したり、インデントを増減したりするためのメソッドがいくつかあります。 Microsoft Word には、箇条書きと番号付きの 2 つの一般的なタイプのリストがあります。
- 箇条書きリストを開始するには、ListFormat.apply_bullet_default を呼び出します。
- 番号付きリストを開始するには、ListFormat.apply_number_default を呼び出します。
箇条書きまたは番号と書式設定は、ListFormat.remove_numbers が呼び出されて箇条書きリストの書式設定が停止されるまで、現在の段落と、DocumentBuilder を使用して作成された以降のすべての段落に追加されます。
Word 文書では、リストは最大 9 レベルで構成されます。各レベルのリストの書式設定では、使用する箇条書きや番号、左インデント、箇条書きとテキストの間のスペースなどを指定します。次のメソッドはリスト レベルを変更し、新しいレベルの書式設定プロパティを適用します。
- 現在の段落のリスト レベルを 1 レベル上げるには、ListFormat.list_indent を呼び出します。
- 現在の段落のリスト レベルを 1 レベル下げるには、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 ドキュメント形式でのみサポートされていることに注意してください。このオプションは、OoxmlCompliance が Ecma376 より高い場合にのみ DOCX に書き込まれます。
次のコード例は、リストを作成してセクションごとに再起動する方法を示しています。
# 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) |