>백엔드 개발 >파이썬 튜토리얼 >Python에서 Excel 파일의 메타데이터를 수정하는 방법

Python에서 Excel 파일의 메타데이터를 수정하는 방법

王林
王林앞으로
2023-05-18 17:46:411962검색

애플리케이션 시나리오

이 코드는 작성자, 제목, 설명 등과 같은 Excel 파일의 메타데이터를 수정하는 데 사용할 수 있습니다. Python 및 Openpyxl 모듈과 wxPython 라이브러리를 사용하여 메타데이터를 입력하는 GUI 인터페이스를 생성할 수 있습니다. 그런 다음 이 메타데이터는 Excel 파일과 함께 저장됩니다.

다음은 몇 가지 가능한 적용 시나리오입니다.

메타데이터를 사용하여 특히 분류하고 관리해야 하는 경우 대량의 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 파일의 해당 속성에 쓸 수 있습니다.

이 코드는 Excel 파일 속성을 입력하기 위한 텍스트 상자와 "저장" 버튼이 포함된 PropertyEditor라는 wxPython 창을 생성합니다. "저장" 버튼을 클릭하면 사용자가 수정하고자 하는 엑셀 파일을 가져와서 입력한 속성값을 엑셀 파일의 속성에 저장하게 됩니다. 그런 다음 사용자에게 저장이 성공했음을 알리는 메시지 상자를 표시합니다.

이 프로그램은 사용자가 수정된 Excel 파일의 경로를 이미 알고 있다고 가정합니다. wxPython 모듈의 파일 대화 상자를 사용하여 사용자는 파일 시스템을 탐색하여 Excel 파일을 선택할 수 있습니다.

위 내용은 Python에서 Excel 파일의 메타데이터를 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제