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


猜你喜欢
- 春节休息了几天,今天上班第一天,最近混twitter混得比较多,经常要压缩URL,以前做了个书签用http://is.gd/压缩,后来发现了
- 1. 函数求一阶导import tensorflow as tftf.enable_eager_execution()tfe=tf.cont
- share一些python实现的code#!/usr/bin/env python#coding=utf-8import cv2img =
- π是一个无数人追随的真正的神奇数字。我不是很清楚一个永远重复的无理数的迷人之处。在我看来,我乐于计算π,也就是计算π的值。因为π是一个无理数
- 1、先放个大招:去除字符串中所有的空格和tab换行符str=" a b c de f "pri
- 本文主要研究的是使用Python获取本机所有网卡ip,掩码和广播地址,分享了相关的实例代码,具体介绍如下。搜了一天,竟然没找到一段合适的代码
- 本文实例讲述了python实现同时给多个变量赋值的方法。分享给大家供大家参考。具体分析如下:python中可以同时给多个变量赋值,下面列举了
- 一个重要的应用就是如何在遗忘root用户密码的时候修改密码,使用的方法是启动MySQL服务器时忽略加载授权表。由MySQL使用用户名和口令的
- 最早大家都没有给链接加title的习惯,后来因为w3c标准普及,又集体加上了title。从一个极端走到另个极端,于是出现很多怪异现象。两方面
- MySQL采用了基于开销的优化器,以确定处理查询的最解方式。在很多情况下,MySQL能够计算最佳的可能查询计划,但在某些情况下,MySQL没
- 这里给大家分享一段使用PHP Socket 编程模拟Http post和get请求的代码,非常的实用,结尾部分我们再讨论下php模拟http
- 前言事情是这样的,昨天去表弟家,用了下他的电脑,不小心点到了他硬盘里隐藏的秘密,本来我只需要用几分钟电脑的,害得我硬是在电脑旁坐了几个小时~
- 之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳。 对于他们的耐心我十分敬佩。 但是作为一个程序员,自然也得挑
- 本文实例讲述了Python3最长回文子串算法。分享给大家供大家参考,具体如下:1. 暴力法思路:对每一个子串判断是否回文class Solu
- 本文实例为大家分享了python实现12306图片验证效果的具体代码,供大家参考,具体内容如下思路:在鼠标点击位置加一个按钮,然后再按钮中的
- 我们知道,临时表有以下特性: 1. SESSION 级别,SESSION 一旦断掉,就被自动DROP 了。 2. 和默认引擎有关。如果默认引
- 简介:这里是利用了selenium+图片识别验证,来实现12306的模拟登录,中间也参考了好几个项目,实现了这个小demo,中间也遇到了很多
- 1、目录操作1.1、获取当前目录# coding:utf-8import os# 获取当前工作目录(绝对路径)print(os.getcwd
- 建议有js基础,了解jquery,thinkphp,废话不说多下面就上代码《————HTML————》//thinkphp循环显示把data
- python正则模块re中findall和finditer两者相似,但却有很大区别。 两者都可以获取所有的匹配结果,这和searc