チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Python»Spire.Doc for Python»文書操作»Python:Word 文書に目次を挿入する方法
2025-02-14

Python:Word 文書に目次を挿入する方法

長文の Word 文書では、効率的な文書の整理とナビゲーションが重要です。文書の可読性とアクセス性を向上させる強力な方法の一つが、目次(TOC)を挿入することです。これにより、読者は特定のセクションを迅速に見つけて、関連する内容に簡単にジャンプすることができます。Python の機能を活用することで、文書が進化する際に動的に更新される目次を簡単に作成できます。

本記事では、Spire.Doc for Python を使用して Python プログラムで Word 文書に目次を挿入する方法を、ステップバイステップで解説し、プロフェッショナルな見た目の文書を簡単に作成できるようにします。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Word 文書にデフォルトの目次を挿入する

Spire.Doc for Python は、異なるレベルの見出しに基づいて Word 文書に目次を挿入する機能をサポートしています。文書に見出しレベルが設定されていない場合、開発者は Paragraph.ApplyStyle(BuiltinStyle) メソッドを使用して見出しレベルを設定した後に目次を挿入することができます。

Paragraph.AppendTOC(lowerLevel: int, upperLevel: int) メソッドを使用することで、任意の段落に目次を挿入し、表示するタイトルを指定することができます。目次を挿入した後、目次の内容が正しく表示されるように、Document.UpdateTableOfContents() メソッドを使用して目次を更新することが重要です。

以下の手順で目次を挿入できます:

  • Document クラスのオブジェクトを作成し、Document.LoadFromFile() メソッドを使用して Word 文書を読み込む。
  • Document.AddSection() メソッドでセクションを追加し、Section.AddParagraph() メソッドでセクションに段落を追加します。そして、Document.Sections.Insert(index: int, entity: Section) メソッドを使用してカバーセクションの後に新しいセクションを挿入します。
  • Document.UpdateTableOfContents() メソッドを使用して目次を更新します。
  • Document.SaveToFile() メソッドで文書を保存します。
  • Python
from spire.doc import Document

# Documentクラスのオブジェクトを作成
doc = Document()

# Word文書を読み込む
doc.LoadFromFile("Sample.docx")

# 目次用のセクションを作成
section = doc.AddSection()

# セクションに段落を追加
paragraph = section.AddParagraph()

# 段落に目次を追加(レベル1からレベル2)
paragraph.AppendTOC(1, 2)

# カバーセクションの後にセクションを挿入
doc.Sections.Insert(1, section)

# 目次を更新
doc.UpdateTableOfContents()

# 文書を保存
doc.SaveToFile("output/デフォルトの目次.docx")
doc.Close()

Word 文書にデフォルトの目次を挿入する

Word 文書にカスタム目次を挿入する

開発者は、TableOfContent オブジェクトを初期化することで目次を作成し、スイッチを使用してカスタマイズすることもできます。例えば、スイッチ「{\o \"1-2\" \n 1-1}」は、目次にレベル 1 からレベル 3 までの見出しを表示し、レベル 1 の見出しにはページ番号を表示しないように指定します。カスタマイズされた目次を Word 文書に挿入する手順は以下の通りです:

  • Document クラスのオブジェクトを作成し、Document.LoadFromFile() メソッドを使用して Word 文書を読み込む。
  • Document.AddSection() メソッドで文書にセクションを追加し、Section.AddParagraph() メソッドでセクションに段落を追加します。そして、Document.Sections.Insert() メソッドを使用してカバーセクションの後にそのセクションを挿入します。
  • TableOfContents クラスのオブジェクトを作成し、Paragraph.Items.Add() メソッドを使用して追加した段落に挿入します。
  • Paragraph.AppendFieldMark() メソッドを使用して、目次のフィールドの終わりを示すフィールド区切りとフィールド終了マークを追加します。
  • 作成した目次を Document.TOC プロパティを通じて文書の目次として設定します。
  • Document.SaveToFile() メソッドで文書を保存します。
  • Python
from spire.doc import Document, TableOfContent, FieldMarkType

# Documentクラスのオブジェクトを作成し、Word文書を読み込む
doc = Document()
doc.LoadFromFile("Sample.docx")

# セクションと段落を追加し、カバーセクションの後にセクションを挿入
section = doc.AddSection()
paragraph = section.AddParagraph()
doc.Sections.Insert(1, section)

# スイッチを使って目次をカスタマイズ
toc = TableOfContent(doc, "{\\o \"1-2\" \\n 1-1}")

# 段落に目次を挿入
paragraph.Items.Add(toc)

# 目次フィールドのセパレータと終了マークを挿入
paragraph.AppendFieldMark(FieldMarkType.FieldSeparator)
paragraph.AppendFieldMark(FieldMarkType.FieldEnd)

# ドキュメントの目次フィールドを設定
doc.TOC = toc

# 目次を更新
doc.UpdateTableOfContents()

# 文書を保存
doc.SaveToFile("output/カスタムの目次.docx")
doc.Close()

Word 文書にカスタム目次を挿入する

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 54 times