dbeaver导入excel文件_PyQT5练习:制作Excel文件导入MySQL窗口

e8bca9ac10d340ec34efc980ca9ebe0b.png

本文环境配置:

系统=>windows10:64位

工具=>PyCharm:2018.3.1

语言=>Python:3.7.1

第三方库

PyQT5:5.11.3
pyqt5-tools:5.11.3.1.4
PyMySQL:0.9.3
openpyxl:2.5.12

练手:制作一个数据库导入窗口


Qt Designer设计界面

53553b172fc7bf3a9018022062678e3b.png

控件元素:

3个QLabel:第一个label在最下方,用于显示执行的时间,其余两个为标签
1个QLineEdit:显示文件的路径地址
1个QListWidget:显示打开的工作簿中所有的工作表名
2两个QPushButton:执行按钮

信号与槽:

"打开" 按钮对应槽函数:open()
"导入"按钮对应槽函数:to_mysql()
工作表名列集合对应的槽函数:set_tobtn()

编写代码

.ui文件转换成.py文件,然后新建一个业务逻辑文件,把界面文件import导入

木子-李:PyCharm中Qt Designer+PyUIC配置​zhuanlan.zhihu.com
8c51d1bde72f5ecd7ce60d5857189f26.png

ec7cf016aff835a8973dfc4b69ca2e73.png

open函数:

e5c6aaf575ac2d0ecec9cb31c1765179.png

初始化"导入"按钮不可用,清空表名列集合

self.pushButton_2.setEnabled(False)
self.listWidget.clear()

调出选择文件对话框,可以默认打开的路径,以及筛选文件后缀

将选择的文件完整路径显示在lineEdit文本框中

filename, _ = QFileDialog.getOpenFileName(self,'选择文件','G:projectExcel_to_MySQL','Excel files(*.xlsx , *.xls)')
self.lineEdit_2.setText(filename)

用第三方库openpyxl打开选择的工作簿,采用只读模式read_only=True

self.wb.sheetnames获取打开工作簿的所有工作表,然后添加到listWidget

self.wb = openpyxl.load_workbook(filename, read_only=True)
self.sheets = self.wb.sheetnames
self.listWidget.addItems(self.sheets)

set_tobtn函数:

3a7ed38a2347cb243bfa12b6224fa52c.png

默认"导入"按钮不能点击,当表名列集合被点击了,就执行set_tobtn函数,然后将"导入"按钮设置为可用。

to_mysql函数:

0747a30947bbfe232253f950bc5b7d22.png

pymysql链接数据库

木子-李:Python操作MySQL数据库​zhuanlan.zhihu.com
e1cc962af77d58c6fbede63119296fca.png

打开选中的表self.wb[表名] ,表名根据选中listWidget返回self.listWidget.currentItem().text()

sheet = self.wb[self.listWidget.currentItem().text()]  # 打开选中的表

sheet.max_row:返回最大行数

sheet.max_column:返回最大列数

executemany(templet,args)

能同时执行多条语句,执行同样多的语句可比execute()快很多,强烈建议执行多条语句时使用executemany

templet : sql模板字符串,
例如 'insert into table(id,name) values(%s,%s)'
args: 模板字符串的参数,是一个列表,列表中的每一个元素必须是元组!!!
例如: [(1,'小明'),(2,'zeke'),(3,'琦琦'),(4,'韩梅梅')]

最终完成效果,其实SQL执行才0.11秒,然而前面的循环用了12秒。不到300的数据啊

270ac36dcdcc00a12dfb598b26396da6.png
https://www.zhihu.com/video/1068290363336355840

这一坨代码速度好慢,有待优化,望大神指教:

1d6f1dce272ab27b9545dfa2d9c0e702.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程中的蛇形填空问题_PCB—蛇形线的作用,这次真的是把你搞懂了

经常能看到论坛里有人在问蛇形线的问题。平时我们能看到蛇形线的地方大都是一些高速高密度板,好像带有蛇形线的板子就更高级,会画蛇形线就是高手了。网上关于蛇形线的文章也有很多,总感觉有些帖子的内容会误导新手,给人们带来困扰…

html5控制gif速度,gif加速软件 教你加快GIF图片的播放速度

一位狸友在编辑GIF动态图片时碰到了一个问题,就是不知怎么把GIF动画的播放速度加快(或减慢)。如果你也正巧碰到此类疑问或想知道GIF加速的方法,可以接着往下看哦。其实先理解了GIF动画的原理,并找对合适的gif编辑软件,解决这问题并…

html文本弹性,HTML5 很有趣的文本蹦床/弹性弯曲动效

CSS语言:CSSSCSS确定import url(http://fonts.googleapis.com/css?familyOpenSans:400,800,300);html,body {height: 100%;}body {display: -webkit-box;display: -webkit-flex;display: -ms-flexbox;display: flex;-webkit-box-pack: center;-webkit-justify-cont…

android studio mvvm模板生成_使用Vue快速生成shape背景图

写在前面在日常的Android开发之中,我们通常都会根据UI图去手动创建shape或者selector背景图,虽说创建起来很简单,但是未免也会感到繁琐,因此也研究了一些这方面的知识,包括自定义shapedrawable、dataBinding&#xff0…

python 句子中没有中文_人生感悟经典句子,生活中可以没有诗歌,但不能没有诗意...

也曾有过一些热忱和勇气,为了自以为的命中注定颠沛流离,本想有一段花好月圆,却未曾想过就此天各一方。不是不爱,不是不会爱,只是少了坚持走下去的勇气。想必这是很多人的心声。错过抑或过错,都是爱情里常有…

计算机用户删除 cmd,命令提示符下怎么新建用户和删除用户

在日常管理电脑中的用户时,我们都是通过控制面板和计算机管理的用户帐户来管理进行用户添加和用户删除的,有一种更快捷的方法就是使用命令对用户帐户进行管理,NET USER 用于创建和修改计算机上的用户帐户,如:新建&…

图像迁移风格保存模型_图像风格迁移也有框架了:使用Python编写,与PyTorch完美兼容,外行也能用...

原标题:图像风格迁移也有框架了:使用Python编写,与PyTorch完美兼容,外行也能用选自Medium作者:Philip Meier 机器之心编译 编辑:陈萍 易于使用的神经风格迁移框架 pystiche。 将内容图片与艺术风格图片进行…

vivo设置全屏后状态栏黑色_vivo手机用2年内存占满,是这3个功能捣乱,一键按下全部释放...

vivo手机用2年内存占满,是这3个功能"捣乱",一键按下全部释放经常使用手机如果没有清理习惯,那么应用一多,产生的文件就会变多,这样手机就会没用2年就出现卡顿的现象。今天来教大家怎样一键释放vivo手机内存。…

学计算机之路写一篇作文,我的学习之路作文(2篇)

我的学习之路作文(2篇)在我们平凡的日常里,大家对作文都再熟悉不过了吧,作文根据写作时限的不同可以分为限时作文和非限时作文。那要怎么写好作文呢?以下是小编整理的我的学习之路作文,仅供参考,欢迎大家阅读。我的学习…

js生日计算年龄_你知道用EXCEL可以从身份证中提取生日、性别、年龄、生肖吗?...

首先我们先了解下中国身份证号码的编排规则,中国公民身份证共18位,1~6位为省份地区信息码;7~14位为出生日期码;15~16位数字表示所在地的派出所的代码;第17位数字表示性别(奇数表示男性,偶数表示女性)&#…

docker 修改阿里镜像源_国内部署kubernetes集群的最佳实践(一)—官方教程+阿里镜像源

项目github地址:https://github.com/usualheart/install_k8s_official在国内环境下,借助阿里镜像源,按照官方的指导,使用脚本一步一步安装kubernetes。参考教程【官方】在ubuntu上安装dockerhttps://docs.docker.com/engine/insta…

html 指定对象为块元素,html内联(行内)元素、块级(块状)元素和行内块元素分类...

HTML可以将元素分类方式分为内联(行内)元素、块级(块状)元素和行内块元素三种。注:HTML是标签语言,那么既然是标签,就可以自己定义一些自己元素(如自定义的元素等),自定义元素浏览器默认解析为内联元素,为防止不同浏览…

python中ht表示什么_如何看待某国内大公司Python面试题,有关dict中初始化为固定值?...

职业发展Python如何看待某国内大公司Python面试题,有关dict中初始化为固定值?阅读下面的代码,写出A0,A1至A6的最终值。A0 dict(zip((a,b,c,d,e),(1,2,3,4,5)))A1 range(10)A2 [i for i in A1 if i in A0]A3 [A0[s] for s in A…

defaultdict python_在python中怎样使用defaultdict-百度经验

defaultdict是collection模块下面的一个类,用于在执行字典的时候,遇到没有设置的属性的时候,可以设置默认的值,那么在python中怎样使用defaultdict呢?下面小编就带大家来看看详细的教程!工具/原料 python版…

微型计算机除具有计算机的一般特点外,10秋学期《计算机应用基础》第1次在线作业答案免费6/15...

10秋学期《计算机应用基础》第1次在线作业答案免费6/152011-02-17 00:02:57266有学员问关于10秋学期《计算机应用基础》第1次在线作业答案免费6/15的题目的参考答案和解析,具体如下:2010秋学期《计算机应用基础》第一次在线作业试卷总分:100 …

设计几何体素描_石膏几何体素描教案

1石膏几何体素描教案教学目的:1、知识能力目标:通过教学使学生懂得写实素描、石膏几何体写生的意义,为上好其他绘画专业课奠定造型基础。2、方法与过程目标:掌握写生的观察方法、透视规律、作画步骤。3、情感态度价值目标&#xf…

java面试换背景颜色_三年经验Java程序员记一次失败的面试分享:鹅厂三面让我体无完肤!...

欢迎关注专栏:里面定期分享Java架构技术知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿。程序员圈内那点事​zhuanlan.zhihu.com经过半年的沉淀,加上对MySQL,redis…

福昕风腾pdf导出为html,福昕风腾PDF套件快速指引.pdf

福昕风腾PDF套件快速指引福昕风腾PDF 套件 快速指南1福昕风腾PDF 套件 快速指南福昕风腾PDF 套件 快速指南本文简要介绍了福昕风腾 PDF 套件的主要功能。如需详细的操作帮助,请参看我们的用户手册。使用入门安装福昕风腾PDF 套件(福昕风腾PDF 电子文档处理套件)系统…

12x12怎么速算_备考 | 资料分析中的乘法速算怎么做?

资料分析是考生们在学习职测必须要作为重点的一个部分。难度不是特别大,但是技巧性比较强。资料分析其中一个重难点就是计算,而在计算中比较复杂的列式一定包含乘除运算。对于其中的乘法,考生们往往束手无策,只能采取硬算的方式。…

商城报表系统html5,关于html5:推荐这几款主流报表产品

为什么大家当初放弃应用Excel,而抉择第三方报表工具呢?Excel是一个电子表格程序,而不是一个数据库程序。Excel数据处理容量和速度有限度,数据可视化水平不高,都是以表格为主,尽管也能插入一些图表&#xff…