Heim  >  Artikel  >  Backend-Entwicklung  >  So ändern Sie die Metadaten von Excel-Dateien in Python

So ändern Sie die Metadaten von Excel-Dateien in Python

王林
王林nach vorne
2023-05-18 17:46:411902Durchsuche

Anwendungsszenario

Mit diesem Code können die Metadaten von Excel-Dateien wie Autor, Betreff, Beschreibung usw. geändert werden. Durch die Verwendung von Python- und Openpyxl-Modulen sowie der wxPython-Bibliothek können wir eine GUI-Schnittstelle zur Eingabe von Metadaten erstellen. und dann werden diese Metadaten mit der Excel-Datei gespeichert.

Hier ein paar mögliche Anwendungsszenarien:

Verwenden Sie Metadaten, um große Mengen an Excel-Dateien schneller zu identifizieren und zu finden, insbesondere wenn diese kategorisiert und verwaltet werden müssen.

Datenfreigabe: Wenn Sie eine Excel-Datei mit anderen teilen müssen, können Metadaten nützliche Informationen wie Autor, Betreff und Beschreibung liefern.

Durch die Verwendung von Metadaten können Sie mehrere Excel-Dateien einfacher identifizieren und unterscheiden und so den Datenanalyseprozess beschleunigen.

Datenberichte: Wenn Sie in einem Bericht auf eine Excel-Datei verweisen müssen, können Metadaten nützliche Informationen wie Autor, Betreff und Beschreibung liefern.

Kurz gesagt, dieser Code kann in jedem Szenario verwendet werden, in dem die Metadaten von Excel-Dateien geändert werden müssen, von der Datenverwaltung über die Datenanalyse bis hin zur Datenberichterstattung. Mit diesem Code kann alles erreicht werden.

Der Effekt ist wie unten gezeigt

So ändern Sie die Metadaten von Excel-Dateien in Python

Testdaten

hello
2023-04-18T10:00:00Z
2023-04-17T10:00:00Z
musk
chatgpt
我是一个测试文档
python测试
这是一个运用销售给到用户的应用。

Quellcode

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()

Quellcodebeschreibung

Mit der vom wxPython-Modul erstellten GUI-Schnittstelle können Benutzer die Attribute der Excel-Datei eingeben, die sie benötigen geändert werden. Benutzer können Autor, Erstellungszeit, Änderungszeit, Titel, Betreff und Beschreibung eingeben und dann auf die Schaltfläche „Speichern“ klicken, um diese Eigenschaften zu speichern und in die entsprechenden Eigenschaften der Excel-Datei zu schreiben.

Dieser Code erstellt ein wxPython-Fenster namens PropertyEditor, das Textfelder zur Eingabe von Excel-Dateieigenschaften und eine Schaltfläche „Speichern“ enthält. Wenn Sie auf die Schaltfläche „Speichern“ klicken, wird die Excel-Datei abgerufen, die der Benutzer ändern möchte, und die eingegebenen Eigenschaftswerte werden in den Eigenschaften der Excel-Datei gespeichert. Anschließend wird ein Meldungsfeld angezeigt, das den Benutzer darüber informiert, dass die Speicherung erfolgreich war.

Bitte beachten Sie, dass dieses Programm davon ausgeht, dass der Benutzer den Pfad zur geänderten Excel-Datei bereits kennt. Mithilfe des Dateidialogfelds des wxPython-Moduls können Benutzer das Dateisystem durchsuchen, um Excel-Dateien auszuwählen.

Das obige ist der detaillierte Inhalt vonSo ändern Sie die Metadaten von Excel-Dateien in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen