Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk mengubah suai metadata fail Excel dalam Python

Bagaimana untuk mengubah suai metadata fail Excel dalam Python

王林
Lepaskan: 2023-05-18 17:46:41
ke hadapan
1956 orang telah melayarinya

Senario aplikasi

Kod ini boleh digunakan untuk mengubah suai metadata fail Excel, seperti pengarang, subjek, penerangan, dsb. Dengan menggunakan modul Python dan Openpyxl serta perpustakaan wxPython, kita boleh mencipta Antara muka GUI untuk Masukkan metadata dan simpan metadata ini dengan fail Excel.

Berikut ialah beberapa kemungkinan senario aplikasi:

Gunakan metadata untuk mengenal pasti dan mencari sejumlah besar fail Excel dengan lebih cepat, terutamanya jika ia perlu dikategorikan dan diuruskan.

Perkongsian Data: Apabila anda perlu berkongsi fail Excel dengan orang lain, metadata boleh memberikan maklumat berguna seperti pengarang, subjek dan penerangan.

Menggunakan metadata membolehkan anda mengenal pasti dan membezakan berbilang fail Excel dengan lebih mudah, mempercepatkan proses analisis data.

Pelaporan Data: Apabila anda perlu merujuk fail Excel dalam laporan, metadata boleh memberikan maklumat berguna seperti pengarang, subjek dan penerangan.

Ringkasnya, kod ini boleh digunakan dalam mana-mana senario di mana metadata fail Excel perlu diubah suai, daripada pengurusan data kepada analisis data kepada pelaporan data, semuanya boleh dicapai melalui kod ini.

Kesannya adalah seperti berikut

Bagaimana untuk mengubah suai metadata fail Excel dalam Python

Data ujian

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

Kod sumber

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()
Salin selepas log masuk

Perihalan kod sumber

Dengan bantuan antara muka GUI yang dibina oleh modul wxPython, pengguna boleh memasukkan sifat fail Excel yang perlu diubah suai. Pengguna boleh memasukkan pengarang, masa penciptaan, masa pengubahsuaian, tajuk, subjek dan perihalan, dan kemudian klik butang "Simpan" untuk menyimpan sifat ini dan menulisnya ke dalam sifat yang sepadan bagi fail Excel.

Kod ini mencipta tetingkap wxPython yang dipanggil PropertyEditor, yang mengandungi kotak teks untuk memasukkan sifat fail Excel dan butang "Simpan". Apabila butang "Simpan" diklik, ia akan mendapat fail Excel yang pengguna ingin ubah suai dan menyimpan nilai harta yang dimasukkan ke dalam sifat fail Excel. Ia kemudiannya memaparkan kotak mesej yang menggesa pengguna bahawa simpanan itu berjaya.

Sila ambil perhatian bahawa program ini menganggap bahawa pengguna sudah mengetahui laluan ke fail Excel yang diubah suai. Menggunakan kotak dialog fail modul wxPython, pengguna boleh menyemak imbas sistem fail untuk memilih fail Excel.

Atas ialah kandungan terperinci Bagaimana untuk mengubah suai metadata fail Excel dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan