博客 / 詳情

返回

用Python添加、讀取和刪除Word文檔屬性

在Python中處理Word文檔時,對文檔屬性進行操作是一項重要的任務。文檔屬性主要分為內置屬性(如標題、作者等)和自定義屬性(用户根據自身需求定義的屬性)。合理地管理這些屬性,能夠提升文檔管理效率、優化信息檢索功能,並確保文檔數據的準確性與安全性。本文將介紹如何使用Python實現對Word文檔屬性的添加、讀取和刪除操作,包括內置文檔屬性和自定義文檔屬性。

  • 用Python添加文檔屬性到Word文檔
  • 用Python讀取Word文檔的文檔屬性
  • 用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.NameCustomDocumentProperty.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文檔中的內置文檔屬性和自定義文檔屬性。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.