実現したいこと
以下のコードでexcelファイルのプロパティを一括削除した際、シート内の書式(取り消し線や太字など)がクリアされてしまうため、書式クリアせずプロパティ削除を行いたい。
発生している問題・分からないこと
書式クリアされない方法を知りたい
該当のソースコード
python
1# coding: utf -82from tkinter import filedialog 3import os 4import openpyxl 5 6 7def main():8 # 対象のフォルダパス取得9 fTyp = [("", "*")]10 iDir = os.path.abspath(os.path.dirname(__file__))11 folder_path = filedialog.askdirectory( initialdir=iDir , title="対象のフォルダを選択" )12 serch_file(folder_path)13 return14 15 16def serch_file(path):17 with os.scandir(path) as it:18 for entry in it:19 # 対象ファイルがディレクトリ20 if entry.is_dir():21 # 再起処理による検索22 serch_file(entry.path)23 # 対象ファイルがディレクトリ以外24 elif entry.is_file():25 if ".xlsx" in entry.name:26 delete_properties(entry.path)27 print(entry.path)28 return29 30 31def delete_properties(path):32 # Excelファイルの読み込み33 wb = openpyxl.load_workbook(path)34 props = wb.properties 35 # プロパティ情報を削除する36 # 説明37 props.title=None38 props.subject=None39 props.keywords=None40 props.category=None41 props.description=None42 # 元の場所43 props.creator=None44 props.lastModifiedBy=None45 props.revision=None46 props.version=None47 # コンテンツ48 props.contentStatus=None49 props.language=None50 # Excelファイルの保存51 wb.save(path)52 return53 54if __name__ == '__main__':55 main()
試したこと・調べたこと
上記の詳細・結果
teratail、googleで検索したが、解決方法が見つからなかった。
補足
ソースは以下のサイトを参考にさせていただきました。
https://telecom-engineer.blog/blog/2023/05/02/excel-properties/
0 コメント