1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでWord文書のプロパティを追加、読み取り、削除する方法

Last updated at Posted at 2025-02-20

PythonでWord文書を処理する際、ドキュメントプロパティの操作は重要な作業です。ドキュメントプロパティには、タイトルや作成者などの組み込みプロパティと、ユーザーが独自に定義できるユーザー設定プロパティの2種類があります。これらを適切に管理することで、文書管理の効率を向上させ、情報検索を最適化し、文書データの正確性と安全性を確保できます。本記事では、Pythonを使用してWord文書のドキュメントプロパティを追加、読み取り、削除する方法について解説します。

本記事で紹介する方法は、無料のFree Spire.Doc for Pythonライブラリを使用します。PyPIからインストールするには、次のコマンドを実行してください:pip install spire.doc.free

PythonでWord文書にドキュメントプロパティを追加する

ライブラリのクラスとメソッドを使用すると、ファイルやストリームからWord文書を直接読み込んで処理できます。組み込みプロパティを追加するには、Document.BuiltinDocumentPropertiesを使用して該当プロパティにアクセスし、値を設定します。ユーザー設定プロパティを追加するには、CustomDocumentProperties.Add()メソッドを使用します。具体的な手順は以下のとおりです:

  1. 必要なモジュール(DocumentStringInt32DateTimeBoolean)をインポートします。
  2. Documentクラスのインスタンスを作成します。
  3. Document.LoadFromFile()メソッドでWord文書を読み込みます。
  4. 組み込みプロパティを設定する場合は、Document.BuiltinDocumentPropertiesを使用して該当プロパティの値を変更します。
  5. ユーザー設定プロパティを追加する場合は、Document.CustomDocumentPropertiesを使用し、Add()メソッドで異なるデータ型のプロパティを追加します。
  6. 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文書にドキュメントプロパティを追加

PythonでWord文書のドキュメントプロパティを読み取る

BuiltinDocumentPropertiesクラスのプロパティを使用すると、組み込みプロパティを取得できます。また、ユーザー設定プロパティを読み取るには、CustomDocumentProperty.NameおよびCustomDocumentProperty.Value(またはCustomDocumentProperty.ToString()で文字列として取得)を使用します。具体的な手順は以下のとおりです:

  1. 必要なモジュール(Document)をインポートします。
  2. Documentクラスのインスタンスを作成します。
  3. Document.LoadFromFile()メソッドで、プロパティが設定されたWord文書を読み込みます。
  4. 組み込みプロパティを取得する場合は、Document.BuiltinDocumentPropertiesを使用します。
  5. ユーザー設定プロパティを取得する場合は、Document.CustomDocumentPropertiesを使用し、各プロパティの名前と値を取得します。
  6. 取得したプロパティ値を出力またはさらに処理します。

コード例

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文書のドキュメントプロパティを読み取る

PythonでWord文書のドキュメントプロパティを削除する

組み込みプロパティを削除するには、その値をNoneに設定します。ユーザー設定プロパティを削除するには、DocumentProperties.Remove()メソッドを使用します。具体的な手順は以下のとおりです:

  1. 必要なモジュール(Document)をインポートします。
  2. Documentクラスのインスタンスを作成します。
  3. Document.LoadFromFile()メソッドで、削除対象のプロパティを含むWord文書を読み込みます。
  4. 組み込みプロパティを削除する場合は、Document.BuiltinDocumentPropertiesを使用し、削除するプロパティの値をNoneに設定します。
  5. ユーザー設定プロパティを削除する場合は、Document.CustomDocumentPropertiesを使用し、Remove()メソッドで不要なプロパティを削除します。
  6. 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文書の組み込みプロパティおよびユーザー設定プロパティを追加、読み取り、削除する方法について解説しました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?