基于Python的Excel处理工具

1 项目描述##

为了减轻妹子工作中处理Excel的辛苦,用python写了几个处理xlsx的代码,分别完成一些独立的任务,如根据考勤记录判断每天未来、迟到、早退的名单,实现两个复杂xlsx文件的单元格对比,等等。但妹子毕竟是文科生,直接提供py代码并且要求在命令行中调用,还是极度的不友好。所以这次希望能够完善一下,主要实现三个目标:功能整合、提供GUI、打包成exe。

仍旧使用python,经过一番调研决定使用pyqt开发GUI。

2 安装##

我的本本是mac,一直以来也觉得mac(或者linux)比windows更适合于开发,所以这次的代码工作依旧在mac os上进行。

为了使用pyqt,需要在mac上具备这些条件:

  • Xcode:如果系统没有自带,那就装一个吧,mac os专属的IDLE;
  • Qt:UI开发工具;
  • SIP:将C++和python连接;
  • PyQt:将python和qt连接。

2.1 Xcode###

这个不用多说了,用过Xcode开发过的人都应该听说过,没有的话装一个即可。

2.2 Qt###

Qt官网上下载安装即可,如果不清楚使用哪一个,可以考虑我的选择

2.3 SIP###

下载SIP,这是我的选择

下载完毕后解压并在命令行中进入该目录,执行以下代码。

cd sip-4.16.8/
python configure.py
make 
sudo make install

2.4 PyQt4###

当然现在pyqt最新的版本应该是5点几了,不过我的需求应该pyqt4就可以满足。

下载pyqt4,这是我的选择

下载完毕后解压并在命令行中进入该目录,执行一下代码。

cd PyQt-mac-gpl-4.11.4/
python configure.py
make
sudo make install

2.5 参考###

完成以上四个步骤,便可以在mac os中使用pyqt4了(当然,你还得装了python),进入python然后试试import PyQt4吧,如果能成功导入说明一切顺利。

其他在mac os上安装pyqt4的参考资料:

http://blog.csdn.net/watsy/article/details/8857252

http://www.noktec.be/python/how-to-install-pyqt4-on-osx

3 开发##

我的项目托管于Github,example文件夹里面包含了一些pyqt4的教程例子,My_dear.py是最终的程序代码,整合了考勤文件处理和Excel表格对比两个功能。界面看起来大概是这样(界面求不吐槽,毕竟不是产品,不用在乎设计,功能实现就可以啦!),左边的列表里的两项即对应不同的标签页。

Excel处理工具界面.png

pyqt4的教程例子主要来源于这里

4 打包##

如果只是python代码的话,别人的电脑上如果想运行就需要配置同样的环境,所以最好打包成产品,别人运行起来只需要一个文件即可。

我使用PyInstaller进行项目打包,在mac os上使用pip即可安装PyInstaller。

sudo pip install pyinstaller

接下来打包成在mac os上可以直接运行的app格式,第一行命令生成打包中间文件My_dear.spec,第二行代码处理该文件并完成打包。

pyinstaller --windowed --onefile --clean --noconfirm My_dear.py
pyinstaller --clean --noconfirm --windowed --onefile My_dear.spec

当然也可以打包成pkg或dmg等格式,参考这里

可这不是我要的效果,因为这个最终是要给妹子用的,妹子单位上班的地方用的台式机装的却是windows,所以平台差异的问题这时候浮现了出来,一开始就弄错了开发平台,因为mac os上开发的程序是不可能打包成exe的= =。

5 出奇简单的Windows##

所以转战到实验室的windows台式机上再次开发,却发现这次windows的开发流程比mac os简单多了。在windows上,有了python,如果想使用pyqt4,安装一个软件就够了,里面包含了你需要的一切!

下载地址在这里,直接根据你的python版本和位数选择exe即可。

安装过程中会默认选择系统python安装路径,安装完毕之后就可以运行My_dear.py文件了。

至于windows下的打包,同样可以使用PyInstaller。和mac os不同的是,mac os中PyInstaller是python的一个包且可通过pip下载,而在windows中则需要人工下载源码。

下载链接在这里,下载完毕后解压即可。在cmd中进入该目录,使用以下命令即可完成打包(为了方便可以把My_dear.py也拷贝至该目录下)。

python pyinstaller.py [opts] My_dear.py

其中opts为可选参数,主要包括:

  • -F,-onefile:打包成一个exe文件夹;
  • -D,-onedir:创建一个目录,包含exe文件夹,但会依赖很多文件(默认);
  • -c,-console,-nowindowed:使用控制台,无界面(默认);
  • -w,-windowed,-noconsole:使用窗口,无控制台。

所以对于我的GUI,参数的选择是-Fw。

6 总结##

在本次开发过程中,出于个人习惯选择了mac os作为开发平台,后面由于导出exe的需求在windows上再次做了尝试。总的来说,接触并初步熟悉了pyqt4在mac os和windows上的部署和开发,以及用PyInstaller打包py程序的方法,还是收获良多的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容