PythonでWord文書を処理する際、ドキュメントプロパティの操作は重要な作業です。ドキュメントプロパティには、タイトルや作成者などの組み込みプロパティと、ユーザーが独自に定義できるユーザー設定プロパティの2種類があります。これらを適切に管理することで、文書管理の効率を向上させ、情報検索を最適化し、文書データの正確性と安全性を確保できます。本記事では、Pythonを使用してWord文書のドキュメントプロパティを追加、読み取り、削除する方法について解説します。
本記事で紹介する方法は、無料のFree Spire.Doc for Pythonライブラリを使用します。PyPIからインストールするには、次のコマンドを実行してください:pip install spire.doc.free
。
PythonでWord文書にドキュメントプロパティを追加する
ライブラリのクラスとメソッドを使用すると、ファイルやストリームからWord文書を直接読み込んで処理できます。組み込みプロパティを追加するには、Document.BuiltinDocumentProperties
を使用して該当プロパティにアクセスし、値を設定します。ユーザー設定プロパティを追加するには、CustomDocumentProperties.Add()
メソッドを使用します。具体的な手順は以下のとおりです:
- 必要なモジュール(
Document
、String
、Int32
、DateTime
、Boolean
)をインポートします。 -
Document
クラスのインスタンスを作成します。 -
Document.LoadFromFile()
メソッドでWord文書を読み込みます。 -
組み込みプロパティを設定する場合は、
Document.BuiltinDocumentProperties
を使用して該当プロパティの値を変更します。 -
ユーザー設定プロパティを追加する場合は、
Document.CustomDocumentProperties
を使用し、Add()
メソッドで異なるデータ型のプロパティを追加します。 -
Document.SaveToFile()
メソッドを使用して変更を保存します。
コード例
from spire.doc import Document, String, Int32, DateTime, Boolean
# Documentオブジェクトの作成
doc = Document()
# Word文書をロード
doc.LoadFromFile("Sample.docx")
# 組み込みプロパティの追加
builtin_prop = doc.BuiltinDocumentProperties
builtin_prop.Title = "Pythonによる文書プロパティ操作"
builtin_prop.Author = "コード開発者"
builtin_prop.Category = "技術チュートリアル"
builtin_prop.Keywords = "Python,Word,プロパティ操作"
# カスタムプロパティの追加
custom_prop = doc.CustomDocumentProperties
custom_prop.Add("プロジェクトID", String("PRJ001"))
custom_prop.Add("進捗", Int32(80))
custom_prop.Add("締切日", DateTime(2024, 12, 31, 0, 0, 0, 0))
custom_prop.Add("重要かどうか", Boolean(True))
# 文書の保存
doc.SaveToFile("output/プロパティ追加後の文書.docx")
doc.Close()
PythonでWord文書のドキュメントプロパティを読み取る
BuiltinDocumentProperties
クラスのプロパティを使用すると、組み込みプロパティを取得できます。また、ユーザー設定プロパティを読み取るには、CustomDocumentProperty.Name
およびCustomDocumentProperty.Value
(またはCustomDocumentProperty.ToString()
で文字列として取得)を使用します。具体的な手順は以下のとおりです:
- 必要なモジュール(
Document
)をインポートします。 -
Document
クラスのインスタンスを作成します。 -
Document.LoadFromFile()
メソッドで、プロパティが設定されたWord文書を読み込みます。 -
組み込みプロパティを取得する場合は、
Document.BuiltinDocumentProperties
を使用します。 -
ユーザー設定プロパティを取得する場合は、
Document.CustomDocumentProperties
を使用し、各プロパティの名前と値を取得します。 - 取得したプロパティ値を出力またはさらに処理します。
コード例
from spire.doc import Document
# Documentオブジェクトの作成
doc = Document()
# Word文書をロード
doc.LoadFromFile("output/プロパティ追加後の文書.docx")
# 組み込みプロパティの読み取り
builtin_prop = doc.BuiltinDocumentProperties
print("組み込みプロパティ:")
print(f"タイトル: {builtin_prop.Title}")
print(f"作者: {builtin_prop.Author}")
print(f"カテゴリ: {builtin_prop.Category}")
print(f"キーワード: {builtin_prop.Keywords}")
# カスタムプロパティの読み取り
custom_prop = doc.CustomDocumentProperties
print("\nカスタムプロパティ:")
for i in range(custom_prop.Count):
prop_name = custom_prop.get_Item(i).Name
prop_value = custom_prop.get_Item(i).ToString()
print(f"{prop_name}: {prop_value}")
doc.Close()
PythonでWord文書のドキュメントプロパティを削除する
組み込みプロパティを削除するには、その値をNone
に設定します。ユーザー設定プロパティを削除するには、DocumentProperties.Remove()
メソッドを使用します。具体的な手順は以下のとおりです:
- 必要なモジュール(
Document
)をインポートします。 -
Document
クラスのインスタンスを作成します。 -
Document.LoadFromFile()
メソッドで、削除対象のプロパティを含むWord文書を読み込みます。 -
組み込みプロパティを削除する場合は、
Document.BuiltinDocumentProperties
を使用し、削除するプロパティの値をNone
に設定します。 -
ユーザー設定プロパティを削除する場合は、
Document.CustomDocumentProperties
を使用し、Remove()
メソッドで不要なプロパティを削除します。 -
Document.SaveToFile()
メソッドを使用して変更を保存します。
コード例
from spire.doc import Document
# Documentオブジェクトの作成
doc = Document()
# Word文書をロード
doc.LoadFromFile("output/プロパティ追加後の文書.docx")
# 組み込みプロパティの削除
builtin_prop = doc.BuiltinDocumentProperties
builtin_prop.Title = None
builtin_prop.Author = None
builtin_prop.Category = None
builtin_prop.Keywords = None
# カスタムプロパティの削除
custom_prop = doc.CustomDocumentProperties
for i in range(custom_prop.Count - 1, -1, -1):
custom_prop.Remove(custom_prop[i].Name)
# 文書の保存
doc.SaveToFile("output/属性削除後の文書.docx")
doc.Close()
本記事では、Pythonを使用してWord文書の組み込みプロパティおよびユーザー設定プロパティを追加、読み取り、削除する方法について解説しました。