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

Bagaimana untuk mengubah suai metadata fail Excel dalam Python

王林
王林ke hadapan
2023-05-18 17:46:411902semak imbas

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测试
这是一个运用销售给到用户的应用。

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

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam