Python で Excel ファイルのメタデータを変更する方法

王林
リリース: 2023-05-18 17:46:41
転載
1933 人が閲覧しました

アプリケーション シナリオ

このコードは、作成者、件名、説明などの Excel ファイルのメタデータを変更するために使用できます。Python と Openpyxl モジュール、および wxPython ライブラリを使用することで、メタデータを入力し、このメタデータを Excel ファイルに保存するための GUI インターフェイス。

ここでは、考えられるアプリケーション シナリオをいくつか示します。

メタデータを使用すると、特に分類して管理する必要がある場合に、大量の Excel ファイルをより迅速に識別して検索できます。

データ共有: Excel ファイルを他のユーザーと共有する必要がある場合、メタデータは作成者、件名、説明などの有用な情報を提供できます。

メタデータを使用すると、複数の Excel ファイルをより簡単に識別して区別できるため、データ分析プロセスが高速化されます。

データ レポート: レポート内で Excel ファイルを参照する必要がある場合、メタデータは作成者、件名、説明などの有用な情報を提供できます。

つまり、このコードは、データ管理からデータ分析、データレポートまで、Excel ファイルのメタデータを変更する必要があるあらゆるシナリオで使用でき、すべてがこのコードを通じて実現できます。

効果は次のとおりです

Python で Excel ファイルのメタデータを変更する方法

テストデータ

hello
2023-04-18T10:00:00Z
2023-04-17T10:00:00Z
musk
chatgpt
我是一个测试文档
python测试
这是一个运用销售给到用户的应用。
ログイン後にコピー

ソースコード

import os
import wx
from openpyxl import load_workbook
# from openpyxl import __version__ as openpyxl_version
# from openpyxl import DocumentProperties
 
class PropertyEditor(wx.Frame):
    def __init__(self, parent, title):
        super(PropertyEditor, self).__init__(parent, title=title, size=(500, 400))
 
        # 创建GUI界面
        panel = wx.Panel(self)
 
        author_label = wx.StaticText(panel, label="作者:")
        self.author_text = wx.TextCtrl(panel)
 
        created_label = wx.StaticText(panel, label="创建时间:")
        self.created_text = wx.TextCtrl(panel)
 
        modified_label = wx.StaticText(panel, label="修改时间:")
        self.modified_text = wx.TextCtrl(panel)
 
        last_saved_by_label = wx.StaticText(panel, label="最后一次保存者:")
        self.last_saved_by_text = wx.TextCtrl(panel)
 
        computer_label = wx.StaticText(panel, label="计算机:")
        self.computer_text = wx.TextCtrl(panel)
 
        title_label = wx.StaticText(panel, label="标题:")
        self.title_text = wx.TextCtrl(panel)
 
        subject_label = wx.StaticText(panel, label="主题:")
        self.subject_text = wx.TextCtrl(panel)
 
        description_label = wx.StaticText(panel, label="描述:")
        self.description_text = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
 
        save_button = wx.Button(panel, label="保存")
        save_button.Bind(wx.EVT_BUTTON, self.on_save)
 
        # 添加到Sizer中
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(author_label, flag=wx.ALL, border=5)
        sizer.Add(self.author_text, flag=wx.EXPAND|wx.ALL, border=5)
        sizer.Add(created_label, flag=wx.ALL, border=5)
        sizer.Add(self.created_text, flag=wx.EXPAND|wx.ALL, border=5)
        sizer.Add(modified_label, flag=wx.ALL, border=5)
        sizer.Add(self.modified_text, flag=wx.EXPAND|wx.ALL, border=5)
        sizer.Add(last_saved_by_label, flag=wx.ALL, border=5)
        sizer.Add(self.last_saved_by_text, flag=wx.EXPAND|wx.ALL, border=5)
        sizer.Add(computer_label, flag=wx.ALL, border=5)
        sizer.Add(self.computer_text, flag=wx.EXPAND|wx.ALL, border=5)
        sizer.Add(title_label, flag=wx.ALL, border=5)
        sizer.Add(self.title_text, flag=wx.EXPAND|wx.ALL, border=5)
        sizer.Add(subject_label, flag=wx.ALL, border=5)
        sizer.Add(self.subject_text, flag=wx.EXPAND|wx.ALL, border=5)
        sizer.Add(description_label, flag=wx.ALL, border=5)
        sizer.Add(self.description_text, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
        sizer.Add(save_button, flag=wx.ALL|wx.CENTER, border=10)
 
        panel.SetSizer(sizer)
 
    def on_save(self, event):
        dlg = wx.FileDialog(self, "选择要修改属性的Excel文件", "", "", "*.xlsx", wx.FD_OPEN)
        if dlg.ShowModal() == wx.ID_OK:
            file_path = dlg.GetPath()
 
            try:
                wb = load_workbook(filename=file_path)
 
                # 修改属性
                properties = wb.properties
                properties.creator = self.author_text.GetValue()
                properties.created = self.created_text.GetValue()
                properties.modified = self.modified_text.GetValue()
                properties.lastModifiedBy = self.last_saved_by_text.GetValue()
                properties.computer = self.computer_text.GetValue()
                properties.title = self.title_text.GetValue()
                properties.subject = self.subject_text.GetValue()
                properties.description = self.description_text.GetValue()
 
                wb.save(file_path)
                wx.MessageBox("属性已成功保存!", "提示", wx.OK|wx.ICON_INFORMATION)
 
            except Exception as e:
                wx.MessageBox("修改属性时出错: {}".format(str(e)), "错误", wx.OK|wx.ICON_ERROR)
 
        dlg.Destroy()
 
if __name__ == '__main__':
    app = wx.App()
    frame = PropertyEditor(None, title="修改Excel文件属性")
    frame.Show()
    app.MainLoop()
ログイン後にコピー

ソースコードの説明

wxPython モジュールによって構築された GUI インターフェイスを利用して、ユーザーは変更が必要な Excel ファイルの属性を入力できます。ユーザーは、作成者、作成時刻、変更時刻、タイトル、件名、説明を入力し、[保存] ボタンをクリックしてこれらのプロパティを保存し、Excel ファイルの対応するプロパティに書き込むことができます。

このコードは、PropertyEditor という名前の wxPython ウィンドウを作成します。このウィンドウには、Excel ファイルのプロパティを入力するためのテキスト ボックスと「保存」ボタンが含まれています。 「保存」ボタンをクリックすると、変更したいExcelファイルが取得され、入力したプロパティ値がExcelファイルのプロパティに保存されます。次に、保存が成功したことをユーザーに知らせるメッセージ ボックスが表示されます。

このプログラムは、ユーザーが変更された Excel ファイルへのパスをすでに知っていることを前提としていることに注意してください。 wxPython モジュールのファイル ダイアログ ボックスを使用すると、ユーザーはファイル システムを参照して Excel ファイルを選択できます。

以上がPython で Excel ファイルのメタデータを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート