electron的第一次亲密接触——一个数据提取工具的前世今生(一)

特别说明,本文并非纯粹的技术贴,所谓的前世今生,文章中讲述了许多这个工具软件的制作背景以及个人的学习过程等内容。

历时一个星期,对electron.js进行了初步的探索,然后又花费了一天的时间来梳理逻辑,敲代码,终于完成了一个辅助日常工作的数据提取工具:

这个工具的功能其实蛮简单的,就是对年份、月份、车辆分类等参数进行筛选,然后定制数据字段,从本地的sqlite中提数数据,并输出excel表格,同时也加了一些定制字段的记忆功能。

年份和月份都是可以多选的:

 车辆分类可以根据需求选择不同的分类标准,但作了限定,选择其中一个,另一个会被锁死:

 右边是根据需求定制的字段,可以将定制好的字段进行保存,再次使用时载入即可:

 在讲这个软件之前,先说一些题外话,也算是这个软件的制作背景吧。我是在2017年年底开始从事数据工作的,刚开始接触数据工作时,十分的不适应,被这个略显繁琐,重复而枯燥的工作压得透不过来气,早八晚九,周末加班成为了常态。面对枯燥而繁琐的工作,我也想到了通过一些编程手段来减少工作量。但是,尽管我对编程始终抱着一颗热忱的心,但是在当时,我真的只是略知皮毛,其实所谓的皮毛就是在大学时期选修过C++语言,后期又学过一些VB,可以用VBA在excel中写一些简单的宏,用其中的控件,实现一些功能,仅此而已。而后在2018年,我在不断的适应着数据工作的同时,在现有的基础上,对VB进行了更深一步的学习,尝试着在excel中写宏,来减少日常的重复性工作,可以说进展缓慢。不在程序圈内的我(即使现在我也不认为自己在圈内,只算是个人爱好吧,略懂皮毛),在当时我也知道VB语言实际上已经过时了,但是受限于见闻,加上无人引路,只有它能让我从繁琐的数据工作中解脱出来。不过对于VB,有一点我是最欣赏的,就是他的GUI,能够很简单的就构建起来一个桌面程序,也是解决了我很多的难题。

初识python

2019年,一次偶然的机会,我看到了同样是从事数据工作的同事在学习python(在这里吐槽一句,学python在数据工作这个圈子里真的好流行),好奇心促使我去了解它,简单、易学、好上手,我一下子爱上了python。相对于C语言的奥涩难懂,VB语言复杂的语言规则,在初期,仅仅是变量不用声明这一特点就将我深深的吸引了。买书!学习。一开始只是学习python基础的内容,但是怎么在工作中应用,怎么实现数据的处理,完全没有头绪。此外,当时还有个人的一些偏执和倔强,在看待编程这个问题上,喜欢原生的东西,认为用最基础的东西来实现功能才是最好的,对各种工具包有些抵触,这些只能在后续的学习中慢慢的改变。通过一段时间的学习,逐渐的有了一定的基础,便开始考虑在工作中进行运用。excel中集成了VBA,可以让我在其中运用VB来解决问题,那python该如何和工作相结合呢?于是,就在网上搜索,python如何操作excel,当时就接触了第一个工具包——xlwings,它确实是一个非常好的工具包,很好的实现了python对excel的控制。不过,这个工具包更加侧重的是对book,sheet的操作,以及对单元格属性与数值的修改。当然也可以进行批量的,但是需要转化为python的列表与字典,或者用for语句一个格一个格的操作,运行时间长,占用内存大,想要实现稍微复杂点的数据处理工作,就出现爆内存的现象。我在学习编程的道路上再一次遇到了瓶颈。

pandas为我的python插上了翅膀

磕磕绊绊到了2020年,在与同事沟通的过程中,他给我安利了pandas这个包。经过一段时间的摸索与使用,让我感叹道,这才是我想要的python。我日常的工作主要是批量数据的筛选与修改,pandas这个工具与我的工作十分的契合。随之,python开始频繁的出现在我的日常工作之中,不断的学习与尝试,各种功能的实现,让我对python的理解突飞猛进。此外,pandas与xlwings的配合,让我在数据处理与数据展现方面有了极大的突破。但是在当时,在python的应用中,还是存在着几个巨大的问题,第一点,我很少使用函数,总是一行一行代码的从头写到尾,即使有相近的需求,也是将代码再复制粘贴一遍,写出来的代码复杂,重复,运行效率不高,并且很少写注释,阅读性极差,第二点,python的进阶应用,以及各种工具包的使用都是我通过网络查询,并未去研读过官网文档,对其只是知道如何使用,具体的原理和或扩展的功能并不了解,也造成了代码的复杂性。但已经基本实现了数据工作的自动化。

数据提取工具第一个版本的诞生

随着学习与研究的深入,我不在满足于数据工作的自动化,我想要实现界面化与共享。界面化好理解,就是像VB的GUI一样,有一个软件界面,可以进一步的优化与简化工作流程。共享是指突破程序环境的限制,在其他的主机上可以实现功能,共享给他人使用。其实共享很容易实现,pyinstaller可以将python程序打包成exe文件,但是缺少界面的操作,可以移植的功能就很局限。截下来,就继续在网络上查找,python怎样桌面化,pyqt5就能成为了我下一个学习的内容。pyqt5+pandas+xlwings,经过一段时间的尝试,数据提取工具的第一个版本,python版诞生了(我会在个人资源里上传Python版工具的代码,也请批评指正):

python版的数据提取工具的功能和electron版的功能基本一直,也是通过对时间、车型的筛选,然后对字段定制,提取excel表格。但这个工具软件让我有几份遗憾,第一,通过pyinstaller转化的exe文件效率真的很低,运行之后需要好久才能够进入界面;第二点,pyqt5的界面布局是真的好难,当时我唯一的诉求就是尽量整齐,其他是否美观都不在考虑之内,第三点,字段定制,我能想到最好的方法就是checkbox了,这就导致我当时写了几十个checkbox部件的代码,整体效果也不是很理想;第四点,相较于此时,当时我对python的理解处于一个更浅的层面,只能去写一些繁琐的语句去实现一些功能,代码过于臃肿。不过,不论怎样,终于实现了界面化与共享。

这次就先讲到这里,下次讲讲我的JavaScript和node的历程。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值