基于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吧,如果能成功导入说明一切顺利。

3 开发

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

基于Python的Excel处理工具

 

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程序的方法,还是收获良多的。

 

上一篇:hdu 3037 Saving Beans Lucas定理


下一篇:使用cocos2d-x c++ Android静态库