Python实现修改Excel文件的元数据
作者:winfredzhang 发布时间:2023-05-01 01:01:47
应用场景
这段代码可以用于修改Excel文件的元数据,例如作者、主题、描述等,通过使用Python和Openpyxl模块,以及wxPython库,我们可以创建一个GUI界面来输入元数据,然后将这些元数据与Excel文件一起保存。
以下是几个可能的应用场景:
数据管理:当你需要对大量的Excel文件进行分类和管理时,元数据可以帮助你更快速地识别和查找这些文件。
数据共享:当你需要与他人共享Excel文件时,元数据可以提供有用的信息,例如作者、主题和描述。
数据分析:当你需要在多个Excel文件之间进行数据分析时,元数据可以让你更快速地识别和区分这些文件。
数据报告:当你需要在报告中引用Excel文件时,元数据可以提供有用的信息,例如作者、主题和描述。
总之,这段代码可以用于任何需要修改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文件的路径。如果你需要让用户浏览文件系统来选择Excel文件,你可以使用wxPython模块的文件对话框。
来源:https://blog.csdn.net/winniezhang/article/details/130241190
猜你喜欢
- 介绍在Python语言中最常见的括号有三种,分别是:小括号()、中括号[]、花括号{};其作用也不相同,分别用来代表不同的Python基本内
- 下面介绍下Python import与from import使用,具体内容如下所示:Python程序可以调用一组基本的函数(即内建函数),比
- 从这节算是开始进入“正规”的机器学习了吧,之所以“正规”因为
- jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的J&
- 什么是缓存组件Cache缓存是提升 Web 应用性能简便有效的方式。 通过将相对静态的数据存储到缓存并在收到请求时取回缓存, 应用程序便节省
- SocketServer创建一个网络服务框架。它定义了类来处理TCP,UDP, UNIX streams 和UNIX datagrams上的
- 页面中无法看见页面,指向的连接网页无法显示 解决方法:1、首先在Dreamweaver中不能中文作为文件名。连目录名也最好是英文的。2、如果
- 简介对与控件QPushButton中的可以使用setStyleSheet设置它背景图片。具体设置背景图片的方法有两种self.button.
- 块级元素块级元素生成一个元素框,(默认地)它会填充其父级元素的内容,旁边不能有其他元素。换句话说,他在元素框之前和之后生成了“分隔”符。我们
- 基础理论第一层:卷积层。第二层:卷积层。第三层:全连接层。第四层:输出层。图中原始的手写数字的图片是一张 28×28 的图片,并且是黑白的,
- 在这个由两部分组成的系列文章的第二部分中,我们将继续探索如何将函数式编程方法中的好想法引入到 Python中,以实现两全其美。在上一篇文章中
- 如下所示:def read_data(file_name): ''' file_name:文件地址 '
- 1. 引入messages模块from django.contrib import messages2. 把messages写入view中@
- 微信小程序与php 实现微信支付的简单实例小程序访问地址:payfee.PHP:include 'WeixinPay.php'
- 在面向对象的编程中,很多语言都支持函数重载,能根据函数传递的不同个数、类型的参数来做不同的操作,JS对它却不支持,需要我们额外做些小动作。在
- 在python中调用fortran代码,要用到f2py这个程序。它的项目主页在此。现在该项目已经合并到numpy中了,先安装python再装
- 在深度学习中,模型的输入size通常是正方形尺寸的,比如300 x 300这样.直接resize的话,会把图像拉的变形.通常我们希望resi
- 阅读上一章:Chapter 8 再谈清单Chapter 9 精简标签先前我们不断提到结构化内容能够把结构与设计细节分类并精简标签,该怎么做呢
- 前言Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
- 前言很久没更新这个专栏了,最近比较忙。前段时间看到了这个模型觉着很有意思,弄下来自己玩了玩,但是没时间写文章,一直搁置到现在。废话不多说,先