チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
ページサイズとは、文書のページの寸法を指します。これは印刷可能領域の幅と高さを決定し、文書のレイアウトやデザインにおいて重要な役割を果たします。例えば、ビジネス文書には標準的なレターサイズ(8.5 x 11インチ)、国際的な文書には A4 サイズ(210 x 297mm)が使用されることが一般的です。ページサイズを適切に設定することで、目的の出力形式やプレゼンテーション媒体に適合した文書を作成できます。本記事では、Spire.Doc for Python を使用して、Word 文書のページサイズを調整する方法を紹介します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python を使用すると、A3、A4、A5、A6、B4、B5、B6、レター、リーガル、タブロイドなど、さまざまな標準ページサイズに簡単に変更できます。以下の手順で、Word 文書のページサイズを標準サイズに変更する方法を説明します。
from spire.doc import Document, PageSize
# Document クラスのインスタンスを作成します
doc = Document()
# Word 文書を読み込みます
doc.LoadFromFile("Sample.docx")
# 文書内のセクションを順に処理します
for i in range(doc.Sections.Count):
section = doc.Sections.get_Item(i)
# 各セクションのページサイズを A4 に変更します
section.PageSetup.PageSize = PageSize.A4()
# 処理結果の文書を保存します
doc.SaveToFile("output/標準ページサイズ.docx")
doc.Close()
標準の用紙サイズに合わない独自の寸法で印刷する場合、カスタムページサイズを設定できます。以下の手順で、Spire.Doc for Python を使用して Word 文書のページサイズをカスタムサイズに変更する方法を説明します。
from spire.doc import Document, SizeF
# Document クラスのインスタンスを作成します
doc = Document()
# Word 文書を読み込みます
doc.LoadFromFile("Sample.docx")
# 指定した寸法で SizeF クラスのインスタンスを作成します
customSize = SizeF(600.0, 800.0)
# 文書内のセクションを順に処理します
for i in range(doc.Sections.Count):
section = doc.Sections.get_Item(i)
# 各セクションのページサイズを指定した寸法に変更します
section.PageSetup.PageSize = customSize
# 処理結果の文書を保存します
doc.SaveToFile("output/カスタムページサイズ.docx")
doc.Close()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
ドキュメント作成の過程で、空白行が多く見られることがあります。これらの空白は、内容の流れを妨げ、レイアウトを散らかし、ドキュメントの全体的な美的印象を損なう可能性があります。読みやすさを最適化し、構造的に整ったドキュメントを維持するためには、空白行を削除することが重要です。本記事では、Spire.Doc for Python を使用して、Python で Word ドキュメントから空白行を削除する方法を紹介します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Word ドキュメント内の空白行は、セクションの子オブジェクトである空の段落として表示されます。したがって、空白行を削除するには、セクションを繰り返し処理し、その中の空の段落を特定して削除する必要があります。具体的な手順は以下の通りです:
from spire.doc import Document, DocumentObjectType, Paragraph
# Documentクラスのオブジェクトを作成
doc = Document()
# Word文書を読み込む
doc.LoadFromFile("Sample.docx")
# 文書内の各セクションを繰り返し処理
for i in range(doc.Sections.Count):
section = doc.Sections.get_Item(i)
j = 0
# セクション内の各子オブジェクトを繰り返し処理
while j < section.Body.ChildObjects.Count:
# 子オブジェクトがParagraph型かどうかをチェック
if section.Body.ChildObjects[j].DocumentObjectType == DocumentObjectType.Paragraph:
objItem = section.Body.ChildObjects[j]
# 子オブジェクトがParagraphクラスのインスタンスかどうかをチェック
if isinstance(objItem, Paragraph):
paraObj = Paragraph(objItem)
# 段落のテキストが空かどうかをチェック
if len(paraObj.Text) == 0:
# テキストが空の場合、セクションの子オブジェクトリストから削除
section.Body.ChildObjects.Remove(objItem)
j -= 1
j += 1
# 文書を保存
doc.SaveToFile("output/空白行の削除.docx")
doc.Close()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Word で入力可能なフォームを作成すると、他のユーザーが簡単に入力・カスタマイズできる文書を設計できます。情報収集、フィードバックの取得、インタラクティブな文書の作成など、入力可能なフォームを使用することで、データを電子的に効率よく取得できます。テキスト フィールド、チェック ボックス、ドロップダウン リストなどの要素を追加することで、目的に応じたフォームを作成できます。
Word で入力可能なフォームを作成するには、次のツールを使用します。
Word のコンテンツ コントロールは、文書内の内容を整理するためのコンテナーとして機能し、構造化された文書を作成できます。Word 2013 では 10 種類のコンテンツ コントロールが提供されています。本記事では、Spire.Doc for Python を使用して、一般的に利用される 7 種類のコンテンツ コントロールを含む入力可能なフォームの作成方法を紹介します。
コンテンツ コントロール | 説明 |
テキスト(プレーン テキスト) | 書式設定が適用できないプレーン テキスト フィールド。 |
リッチ テキスト | 書式付きテキストや表、画像、他のコンテンツ コントロールを含められるテキスト フィールド。 |
画像 | 1 つの画像を挿入可能。 |
ドロップダウン リスト | 事前に定義されたリストから選択できるドロップダウン リスト。 |
コンボ ボックス | 事前に定義されたリストから選択するか、ユーザーが独自の値を入力できるテキスト ボックス付きのコントロール。 |
チェック ボックス | ユーザーが「はい(チェックあり)」または「いいえ(チェックなし)」を選択できるチェック ボックス。 |
日付選択 | ユーザーがカレンダー コントロールから日付を選択できるコントロール。 |
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python では、StructureDocumentTagInline クラスを使用して、段落内に構造化ドキュメント タグを作成できます。このクラスの SDTProperties プロパティと SDTContent プロパティを利用することで、構造化ドキュメント タグのプロパティや内容を定義できます。以下に、Python を使用して Word 文書に入力可能なフォームを作成する手順を示します。
from spire.doc import *
# Document オブジェクトを作成
doc = Document()
# セクションを追加
section = doc.AddSection()
section.PageSetup.Margins.Top = 60
# テーブルを追加
table = section.AddTable(True)
table.ResetCells(7, 2)
table.SetColumnWidth(0, 120, CellWidthType.Point)
table.SetColumnWidth(1, 350, CellWidthType.Point)
# 1列目のセルにテキストを追加
paragraph = table.Rows[0].Cells[0].AddParagraph()
paragraph.AppendText("氏名")
paragraph = table.Rows[1].Cells[0].AddParagraph()
paragraph.AppendText("プロフィール")
paragraph = table.Rows[2].Cells[0].AddParagraph()
paragraph.AppendText("写真")
paragraph = table.Rows[3].Cells[0].AddParagraph()
paragraph.AppendText("国籍")
paragraph = table.Rows[4].Cells[0].AddParagraph()
paragraph.AppendText("趣味")
paragraph = table.Rows[5].Cells[0].AddParagraph()
paragraph.AppendText("生年月日")
paragraph = table.Rows[6].Cells[0].AddParagraph()
paragraph.AppendText("性別")
# (0,1) のセルにプレーンテキストのコンテンツコントロールを追加
paragraph = table.Rows[0].Cells[1].AddParagraph()
sdt = StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.Text
sdt.SDTProperties.Alias = "プレーンテキスト"
sdt.SDTProperties.Tag = "プレーンテキスト"
sdt.SDTProperties.IsShowingPlaceHolder = True
text = SdtText(True)
text.IsMultiline = False
sdt.SDTProperties.ControlProperties = text
textRange = TextRange(doc)
textRange.Text = "ここに氏名を入力"
sdt.SDTContent.ChildObjects.Add(textRange)
# (1,1) のセルにリッチテキストのコンテンツコントロールを追加
paragraph = table.Rows[1].Cells[1].AddParagraph()
sdt = StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.RichText
sdt.SDTProperties.Alias = "リッチテキスト"
sdt.SDTProperties.Tag = "リッチテキスト"
sdt.SDTProperties.IsShowingPlaceHolder = True
text = SdtText(True)
text.IsMultiline = False
sdt.SDTProperties.ControlProperties = text
textRange = TextRange(doc)
textRange.Text = "自己紹介を簡単に入力"
sdt.SDTContent.ChildObjects.Add(textRange)
# (2,1) のセルに画像コンテンツコントロールを追加
paragraph = table.Rows[2].Cells[1].AddParagraph()
sdt = StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.Picture
sdt.SDTProperties.Alias = "画像"
sdt.SDTProperties.Tag = "画像"
sdtPicture = SdtPicture(True)
sdt.SDTProperties.ControlProperties = sdtPicture
pic = DocPicture(doc)
pic.LoadImage("G:/Documents/Holder.png")
sdt.SDTContent.ChildObjects.Add(pic)
# (3,1) のセルにドロップダウンリストのコンテンツコントロールを追加
paragraph = table.Rows[3].Cells[1].AddParagraph()
sdt = StructureDocumentTagInline(doc)
sdt.SDTProperties.SDTType = SdtType.DropDownList
sdt.SDTProperties.Alias = "ドロップダウンリスト"
sdt.SDTProperties.Tag = "ドロップダウンリスト"
paragraph.ChildObjects.Add(sdt)
stdList = SdtDropDownList()
stdList.ListItems.Add(SdtListItem("アメリカ", "1"))
stdList.ListItems.Add(SdtListItem("日本", "2"))
stdList.ListItems.Add(SdtListItem("ブラジル", "3"))
stdList.ListItems.Add(SdtListItem("オーストラリア", "4"))
sdt.SDTProperties.ControlProperties = stdList
textRange = TextRange(doc)
textRange.Text = stdList.ListItems[0].DisplayText
sdt.SDTContent.ChildObjects.Add(textRange)
# (4,1) のセルにチェックボックスのコンテンツコントロールを2つ追加
paragraph = table.Rows[4].Cells[1].AddParagraph()
sdt = StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.CheckBox
sdtCheckBox = SdtCheckBox()
sdt.SDTProperties.ControlProperties = sdtCheckBox
textRange = TextRange(doc)
sdt.ChildObjects.Add(textRange)
sdtCheckBox.Checked = False
paragraph.AppendText(" 映画")
paragraph = table.Rows[4].Cells[1].AddParagraph()
sdt = StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.CheckBox
sdtCheckBox = SdtCheckBox()
sdt.SDTProperties.ControlProperties = sdtCheckBox
textRange = TextRange(doc)
sdt.ChildObjects.Add(textRange)
sdtCheckBox.Checked = False
paragraph.AppendText(" ゲーム")
# (5,1) のセルに日付ピッカーのコンテンツコントロールを追加
paragraph = table.Rows[5].Cells[1].AddParagraph()
sdt = StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.DatePicker
sdt.SDTProperties.Alias = "日付選択"
sdt.SDTProperties.Tag = "日付選択"
stdDate = SdtDate()
stdDate.CalendarType = CalendarType.Default
stdDate.DateFormat = "yyyy.MM.dd"
stdDate.FullDate = DateTime.get_Now()
sdt.SDTProperties.ControlProperties = stdDate
textRange = TextRange(doc)
textRange.Text = "生年月日を入力"
sdt.SDTContent.ChildObjects.Add(textRange)
# (6,1) のセルにコンボボックスのコンテンツコントロールを追加
paragraph = table.Rows[6].Cells[1].AddParagraph()
sdt = StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.ComboBox
sdt.SDTProperties.Alias = "コンボボックス"
sdt.SDTProperties.Tag = "コンボボックス"
stdComboBox = SdtComboBox()
stdComboBox.ListItems.Add(SdtListItem("男性"))
stdComboBox.ListItems.Add(SdtListItem("女性"))
sdt.SDTProperties.ControlProperties = stdComboBox
textRange = TextRange(doc)
textRange.Text = stdComboBox.ListItems[0].DisplayText
sdt.SDTContent.ChildObjects.Add(textRange)
# 段落スタイルを作成して適用する
style = ParagraphStyle(doc)
style.Name = "本文"
style.CharacterFormat.FontName = "Yu Gothic UI"
style.CharacterFormat.FontSize = 12
doc.Styles.Add(style)
for i in range(7):
for j in range(2):
table.Rows[i].Cells[j].Paragraphs[0].ApplyStyle(style.Name)
# フォームフィールドのみ編集を許可
doc.Protect(ProtectionType.AllowOnlyFormFields, "permission-psd")
# ファイルに保存
doc.SaveToFile("output/記入可能フォーム.docx", FileFormat.Docx2019)
doc.Close()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
カスタムドキュメントプロパティは、Word 文書内にユーザーが定義できるメタデータフィールドです。タイトル、作成者、件名などの標準プロパティとは異なり、カスタムプロパティはユーザーが独自の要件に応じて柔軟に管理できます。本記事では、Spire.Doc for Python を使用して、Word 文書のカスタムプロパティを追加、取得、削除する方法を解説します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python では、CustomDocumentProperties.Add() メソッドを使用して、カスタムプロパティにテキスト、日時、数値、Yes/No などの異なる種類の値を設定できます。
以下の手順でカスタムプロパティを追加します。
Python
from spire.doc import Document, String, Int32, DateTime, Boolean
# Documentオブジェクトを作成
document = Document()
# Word文書を読み込む
document.LoadFromFile("Sample.docx")
# 文書に異なる型のカスタムプロパティを追加
customProperties = document.CustomDocumentProperties
customProperties.Add("文書カテゴリ", String("技術報告書"))
customProperties.Add("改訂番号", Int32(5))
customProperties.Add("最終レビュー日", DateTime(2024, 12, 1, 0, 0, 0, 0))
customProperties.Add("フォローアップ必要", Boolean(False))
# 文書を保存
document.SaveToFile("output/カスタムプロパティの追加.docx")
document.Close()
カスタムプロパティを取得することで、メタデータを分析やレポート作成、他のアプリケーションとの統合に活用できます。Spire.Doc for Python を使用すると、CustomDocumentProperty.Name および CustomDocumentProperty.Value プロパティを使って簡単に取得できます。
以下の手順でカスタムプロパティを取得します。
from spire.doc import Document
# Documentオブジェクトを作成
document = Document()
# Word文書を読み込む
document.LoadFromFile("output/カスタムプロパティの追加.docx")
# カスタムプロパティを抽出してテキストファイルに保存
with open("output/取得したカスタムプロパティ.txt", "w", encoding="utf-8") as output_file:
# すべてのカスタムプロパティを繰り返し処理
for i in range(document.CustomDocumentProperties.Count):
# 各カスタムプロパティの名前と値を取得
property_name = document.CustomDocumentProperties.get_Item(i).Name
property_value = document.CustomDocumentProperties.get_Item(i).ToString()
# プロパティの詳細をテキストファイルに書き込む
output_file.write(f"{property_name}: {property_value}\n")
document.Close()
カスタムプロパティを削除することで、機密情報の保護、ファイルサイズの削減、不要なメタデータの整理が可能になります。Spire.Doc for Python を使用すると、DocumentProperties.Remove() メソッドでカスタムプロパティを削除できます。
以下の手順でカスタムプロパティを削除します。
from spire.doc import Document
# Documentオブジェクトを作成
document = Document()
# Word文書を読み込む
document.LoadFromFile("output/カスタムプロパティの追加.docx")
# すべてのカスタムプロパティを削除
customProperties = document.CustomDocumentProperties
for i in range(customProperties.Count - 1, -1, -1):
# 各カスタムプロパティを名前で削除
customProperties.Remove(customProperties[i].Name)
# 文書を保存
document.SaveToFile("output/カスタムプロパティの削除.docx")
document.Close()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Word 文書には、タイトル、作成者、件名、キーワードなどの情報を含むメタデータとして「ドキュメントプロパティ」が存在します。これらのプロパティを適切に管理することで、文書の整理、検索性の向上、共同作業における適切な情報付与が可能になります。Spire.Doc for Python を使用すると、Word 文書のドキュメントプロパティを自動的に追加、読み取り、削除でき、ドキュメント管理のワークフローを効率化し、より大規模な自動化システムとの統合を容易にします。本記事では、Spire.Doc for Python を用いたドキュメントプロパティの管理方法について、具体的な手順とコード例を交えて解説します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python では、Document.BuiltinDocumentProperties プロパティを使用して、Word 文書の組み込みプロパティにアクセスできます。これらのプロパティの値は、BuiltinDocumentProperties クラスの対応するプロパティを設定することで変更可能です。
以下の手順で、Word 文書の主要な組み込みプロパティを追加できます。
from spire.doc import Document
# Documentオブジェクトの作成
doc = Document()
# Word文書の読み込み
doc.LoadFromFile("Sample.docx")
# 組み込みプロパティの設定
builtinProperty = doc.BuiltinDocumentProperties
builtinProperty.Title = "人工知能の革命"
builtinProperty.Subject = "人工知能におけるニューラルネットワークの高度な応用と未来の方向性"
builtinProperty.Author = "サイモン"
builtinProperty.Manager = "アリエ"
builtinProperty.Company = "AIリサーチラボ"
builtinProperty.Category = "研究"
builtinProperty.Keywords = "機械学習、ニューラルネットワーク、人工知能"
builtinProperty.Comments = "この論文は人工知能の最前線に関するものです。"
builtinProperty.HyperLinkBase = "www.e-iceblue.com"
# 文書の保存
doc.SaveToFile("output/プロパティの追加.docx")
doc.Close()
BuiltinDocumentProperties クラスのプロパティを利用すると、Word 文書に既に設定されている組み込みプロパティを読み取ることができます。これにより、ドキュメントの検索、情報抽出、文書分析などの機能を実装可能です。
以下の手順で、Word 文書の組み込みプロパティを取得できます。
from spire.doc import Document
# Documentオブジェクトの作成
doc = Document()
# Word文書の読み込み
doc.LoadFromFile("output/プロパティの追加.docx")
# 文書の組み込みプロパティを取得
builtinProperties = doc.BuiltinDocumentProperties
# 組み込みプロパティの値を取得
properties = [
"作成者: " + builtinProperties.Author,
"会社: " + builtinProperties.Company,
"タイトル: " + builtinProperties.Title,
"件名: " + builtinProperties.Subject,
"キーワード: " + builtinProperties.Keywords,
"カテゴリ: " + builtinProperties.Category,
"管理者: " + builtinProperties.Manager,
"コメント: " + builtinProperties.Comments,
"ハイパーリンクベース: " + builtinProperties.HyperLinkBase,
"単語数: " + str(builtinProperties.WordCount),
"ページ数: " + str(builtinProperties.PageCount),
]
# 組み込みプロパティを出力
for i in range(0, len(properties)):
print(properties[i])
doc.Close()
Word 文書の組み込みドキュメントプロパティの中で特定の内容を持つものは、値を None に設定することで削除できます。これにより、不要な情報を削除しながら、必要なデータを保持することが可能になります。
以下の手順で、Word 文書の特定の組み込みプロパティを削除できます。
from spire.doc import Document
# Documentクラスのインスタンスを作成
doc = Document()
# Word文書を読み込む
doc.LoadFromFile("output/プロパティの追加.docx")
# 文書の組み込みプロパティを取得
builtinProperties = doc.BuiltinDocumentProperties
# 組み込みプロパティを削除(Noneを設定)
builtinProperties.Author = None
builtinProperties.Company = None
builtinProperties.Title = None
builtinProperties.Subject = None
builtinProperties.Keywords = None
builtinProperties.Comments = None
builtinProperties.Category = None
builtinProperties.Manager = None
# 文書を保存
doc.SaveToFile("output/プロパティの削除.docx")
doc.Close()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
差し込み印刷は、膨大な数の受取人に対してパーソナライズされた文書を効率的に作成するための強力なツールです。差し込み印刷を使用することで、ユーザーはテンプレート文書とデータソースを自動的に統合し、各受取人に合わせたパーソナライズされたプロフェッショナルな文書を迅速に作成できます。これにより、個別のメール送信、請求書の作成、カスタマイズされたマーケティング資料の作成などのタスクを効率化できます。本記事では、Spire.Doc for Python を使用して、Python コードで Word 文書内で差し込み印刷を作成および実行する方法を紹介します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Word 文書での差し込み印刷には、差し込みフィールドの使用が含まれます。Spire.Doc for Python では、Paragraph.AppendField(str: fieldName, FieldType.FieldMergeField) メソッドを提供しており、ユーザーは文書内の指定された段落に効率的に差し込みフィールドを作成できます。この機能により、ユーザーは後でパーソナライズされた情報を入力することで、特定の受取人向けの文書を迅速に生成できます。
Word文書に差し込みフィールドを作成するための詳細な手順は以下の通りです:
from spire.doc import Document, FieldType
# Documentクラスのオブジェクトを作成
doc = Document()
# Word文書を読み込む
doc.LoadFromFile("Sample.docx")
# セクションを取得
section = doc.Sections.get_Item(1)
# メールマージフィールドを追加するための段落を取得
para1 = section.Paragraphs.get_Item(0)
para2 = section.Paragraphs.get_Item(1)
para3 = section.Paragraphs.get_Item(2)
para4 = section.Paragraphs.get_Item(3)
# メールマージフィールドを追加し、フィールド名を指定
para1.AppendField("名前", FieldType.FieldMergeField)
para2.AppendField("年齢", FieldType.FieldMergeField)
para3.AppendField("電話番号", FieldType.FieldMergeField)
para4.AppendField("会員種別", FieldType.FieldMergeField)
# 文書を保存
doc.SaveToFile("output/差し込み印刷フィールドの作成.docx")
doc.Close()
差し込み印刷を作成した後は、MailMerge.Execute(List: fieldNames, List: dataSource) メソッドを使用して文書内で差し込み印刷を実行できます。これにより、指定されたデータソースに基づいて、個別の内容を含む複数の Word 文書を迅速に生成できます。
差し込み印刷を実行してパーソナライズされた文書を生成するための詳細な手順は以下の通りです:
from spire.doc import Document
# データソースを指定(日本語のデータ)
dataSource = member_data = [
["佐藤 太郎", "30", "+81-90-1234-5678", "プレミアム"],
["鈴木 次郎", "40", "+81-80-2345-6789", "スタンダード"],
["高橋 三郎", "25", "+44-70-3456-7890", "ベーシック"],
]
# データソースをループ
for i in range(len(dataSource)):
# Documentのインスタンスを作成
doc = Document()
# メールマージフィールドを含むWord文書を読み込む
doc.LoadFromFile("output/差し込み印刷フィールドの作成.docx")
# マージフィールド名を取得
fieldNames = doc.MailMerge.GetMergeFieldNames()
# メールマージを実行
doc.MailMerge.Execute(fieldNames, dataSource[i])
# 文書を保存
doc.SaveToFile(f"output/Members/Member-{dataSource[i][0]}.docx")
doc.Close()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
長文の Word 文書では、効率的な文書の整理とナビゲーションが重要です。文書の可読性とアクセス性を向上させる強力な方法の一つが、目次(TOC)を挿入することです。これにより、読者は特定のセクションを迅速に見つけて、関連する内容に簡単にジャンプすることができます。Python の機能を活用することで、文書が進化する際に動的に更新される目次を簡単に作成できます。
本記事では、Spire.Doc for Python を使用して Python プログラムで Word 文書に目次を挿入する方法を、ステップバイステップで解説し、プロフェッショナルな見た目の文書を簡単に作成できるようにします。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python は、異なるレベルの見出しに基づいて Word 文書に目次を挿入する機能をサポートしています。文書に見出しレベルが設定されていない場合、開発者は Paragraph.ApplyStyle(BuiltinStyle) メソッドを使用して見出しレベルを設定した後に目次を挿入することができます。
Paragraph.AppendTOC(lowerLevel: int, upperLevel: int) メソッドを使用することで、任意の段落に目次を挿入し、表示するタイトルを指定することができます。目次を挿入した後、目次の内容が正しく表示されるように、Document.UpdateTableOfContents() メソッドを使用して目次を更新することが重要です。
以下の手順で目次を挿入できます:
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()
開発者は、TableOfContent オブジェクトを初期化することで目次を作成し、スイッチを使用してカスタマイズすることもできます。例えば、スイッチ「{\o \"1-2\" \n 1-1}」は、目次にレベル 1 からレベル 3 までの見出しを表示し、レベル 1 の見出しにはページ番号を表示しないように指定します。カスタマイズされた目次を Word 文書に挿入する手順は以下の通りです:
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()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
大量の Word 文書を扱うのは非常に大変です。編集やレビューを行う際に、多くの文書を開閉するだけで多くの時間が浪費されます。さらに、多数の Word 文書を個別に共有・受信するのは煩雑で、送信者と受信者の両方にとって繰り返しの操作が必要になります。そのため、効率を向上させ、時間を節約するために、関連する Word 文書を 1 つのファイルに結合するのが望ましいです。本記事では、Spire.Doc for Python を使用して、Python プログラムで簡単に Word 文書を結合する方法を紹介します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Document.insertTextFromFile() メソッドを使用すると、他の Word 文書を現在の文書に挿入できます。このメソッドを使用すると、挿入された内容は新しいページから開始されます。ファイルの挿入による Word 文書の結合手順は以下のとおりです。
from spire.doc import Document, FileFormat
# Document クラスのオブジェクトを作成し、Word 文書を読み込む
doc = Document()
doc.LoadFromFile("Sample1.docx")
# 別の Word 文書の内容をこの文書に挿入する
doc.InsertTextFromFile("Sample2.docx", FileFormat.Auto)
# 文書を保存する
doc.SaveToFile("output/ドキュメントの挿入.docx")
doc.Close()
Word 文書の結合は、ある文書の内容を別の文書にクローン(複製)する方法でも実現できます。この方法では、元の文書の書式を保持し、クローンされた内容は新しいページを作成せずに既存の文書の末尾に追加されます。具体的な手順は以下のとおりです。
from spire.doc import Document
# Document クラスのオブジェクトを 2 つ作成し、2 つの Word 文書を読み込む
doc1 = Document()
doc1.LoadFromFile("Sample1.docx")
doc2 = Document()
doc2.LoadFromFile("Sample2.docx")
# 最初の文書の最後のセクションを取得する
lastSection = doc1.Sections.get_Item(doc1.Sections.Count - 1)
# 2 つ目の文書のセクションを順番に処理する
for i in range(doc2.Sections.Count):
section = doc2.Sections.get_Item(i)
# セクション内の子オブジェクトを順番に処理する
for j in range(section.Body.ChildObjects.Count):
obj = section.Body.ChildObjects.get_Item(j)
# 2 つ目の文書の子オブジェクトを最初の文書の最後のセクションに追加する
lastSection.Body.ChildObjects.Add(obj.Clone())
# 結果の文書を保存する
doc1.SaveToFile("output/ドキュメント内容のコピー.docx")
doc1.Close()
doc2.Close()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Python を使用して Word 文書を作成、読み込み、更新することは、多くの開発者にとって重要なニーズです。レポートの生成、既存文書の操作、文書作成プロセスの自動化など、Word 文書をプログラムで扱える能力は、生産性と効率の向上に大きく寄与します。本記事では、Spire.Doc for Python を利用して、Python で Word 文書を作成、読み込み、更新する方法を解説します。
この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.Doc
Spire.Doc for Python は、Word 文書のモデルを表現するために Document クラスを提供しています。Word 文書は、最低でも 1 つのセクション(Section クラスで表現)を含み、各セクションは段落、表、グラフ、画像などさまざまな要素を格納するコンテナとして機能します。以下の手順では、Spire.Doc for Python を使って複数の段落を含むシンプルな Word 文書を作成する方法を紹介します。
from spire.doc import Document, FileFormat, BuiltinStyle, ParagraphStyle, HorizontalAlignment
# ドキュメントオブジェクトを作成
doc = Document()
# セクションを追加
section = doc.AddSection()
# ページの余白を設定
section.PageSetup.Margins.All = 40
# タイトルを追加
titleParagraph = section.AddParagraph()
titleParagraph.AppendText("Spire.Doc for Pythonの紹介")
# 2つの段落を追加
bodyParagraph_1 = section.AddParagraph()
bodyParagraph_1.AppendText("Spire.Doc for Pythonは、開発者が任意のPythonアプリケーション内で高速かつ高品質なパフォーマンスでWord文書を作成、読み取り、書き込み、変換、比較、印刷するために設計されたプロフェッショナルなPythonライブラリです。")
bodyParagraph_2 = section.AddParagraph()
bodyParagraph_2.AppendText("独立したWord用Python APIであるSpire.Doc for Pythonは、開発システムやターゲットシステムにMicrosoft Wordがインストールされている必要はありません。しかしながら、どの開発者のPythonアプリケーションにもMicrosoft Wordの文書作成機能を組み込むことが可能です。")
# タイトルに見出し1のスタイルを適用
titleParagraph.ApplyStyle(BuiltinStyle.Heading1)
# 段落用のスタイルを作成
style2 = ParagraphStyle(doc)
style2.Name = "paraStyle"
style2.CharacterFormat.FontName = "Yu Gothic UI"
style2.CharacterFormat.FontSize = 13
doc.Styles.Add(style2)
bodyParagraph_1.ApplyStyle("paraStyle")
bodyParagraph_2.ApplyStyle("paraStyle")
# 段落の水平位置揃えを設定
titleParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center
bodyParagraph_1.Format.HorizontalAlignment = HorizontalAlignment.Left
bodyParagraph_2.Format.HorizontalAlignment = HorizontalAlignment.Left
# 段落後の余白を設定
titleParagraph.Format.AfterSpacing = 10
bodyParagraph_1.Format.AfterSpacing = 10
# ファイルに保存
doc.SaveToFile("output/Word文書.docx", FileFormat.Docx2019)
doc.Close()
Word 文書全体のテキストを取得するには、Document.GetText() メソッドを使用します。以下に手順を示します。
from spire.doc import *
from spire.doc.common import *
# Documentオブジェクトを作成
doc = Document()
# Wordファイルを読み込む
doc.LoadFromFile("output/Word文書.docx")
# ドキュメント全体のテキストを取得
text = doc.GetText()
# テキストを出力
print(text)
特定の段落にアクセスするには、Section.Paragraphs[index] プロパティを使用します。段落のテキストを変更する場合は、Paragraph.Text プロパティに新しいテキストを再割り当てします。以下の手順に従って操作します。
from spire.doc import *
from spire.doc.common import *
# Document オブジェクトを作成
doc = Document()
# Word ファイルを読み込む
doc.LoadFromFile("output/Word文書.docx")
# 特定のセクションを取得
section = doc.Sections[0]
# 特定の段落を取得
paragraph = section.Paragraphs[1]
# 段落のテキストを変更
paragraph.Text = "タイトルが変更されました"
# ファイルに保存
doc.SaveToFile("output/更新されたWord文書.docx", FileFormat.Docx2019)
doc.Close()
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。