作者: 锋小刀
微信搜索【Python与Excel之交】关注我的公众号查看更多内容
Hi~大家好!
今天这篇文章是根据批量填充数据
的进阶版。基础版本就一段很简单的代码。虽然简单,但如果这个模板或者数据发生变化,还是要改来改去的,所以本文就在基础版本上进行改进,只需要动动鼠标就可以填充大量数据到Excel工作表中。
GUI界面设计
GUI是用PySimpleGUI库创建的,安装命令直接用pip命令安装即可!
在开始设计GUI界面时,要明确我们需要实现什么功能,可以先设计出图纸,再动手去写代码!本文根据需求,最后得出以下GUI界面图纸:
GUI界面中按钮和框的一些功能:
- 通过
打开文件按钮
选择数据文件或者在输入框中输入数据文件文件路径,但只支持csv
、xlsx
、xls
格式的文件,并把数据文件中的列标题传入选择或输入数据列标题框
中。 - 通过
打开模板按钮
选择模板文件或者在输入框中输入模板文件的路径,只支持xlsx
和xls
格式的文件,并把模板表格中的空白单元格坐标传入选择或输入单元格坐标框
中。 - 通过
选择或输入数据列标题框
选择要填充的数据列。 - 通过
选择或输入单元格坐标框
选择各个数据列填充的位置。 - 通过
继续按钮
把数据列标题和单元格坐标存储入列表中。 - 通过
开始填充按钮
开始填充数据。 - 通过
信息展示框
展示操作信息。 - 当数据列标题和单元格坐标选择错误时,可以通过
删除元素按钮
删除列表中的错误数据。 - 通过
退出程序
按钮直接结束工具的运行
根据图纸和基本功能思路最后得出以下代码:
# 主题设置
sg.theme('BrownBlue')
# 布局设置
layout = [
# 选择数据文件框和按钮 file_types 后面跟的是支持的文件格式,传入的是元组,元组中只包含一个元素时,需要在元素后面添加逗号
[sg.Text('请选择文件:', font=("微软雅黑", 12)),
sg.InputText(key='please_select_file', size=(78, 1), font=("微软雅黑", 10), enable_events=True),
sg.FileBrowse('打开文件', file_types=(("Text Files", "*.csv*"), ("Text Files", "*.xls*")), font=("微软雅黑", 12))],
# 选择模板框和按钮 xls包括xlsx格式
[sg.Text('请选择模板:', font=("微软雅黑", 12)),
sg.InputText(key='template', size=(78, 1), font=("微软雅黑", 10), enable_events=True),
sg.FileBrowse('打开模板', file_types=(("Text Files", "*.xls*"),), font=("微软雅黑", 12))],
[sg.Text('请选择或输入数据列标题:', font=("微软雅黑", 12)),
sg.Combo(values='', tooltip='请选择或输入数据列:', font