300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python简单代码编写-Python | 编写一个简单的Excel处理脚本

python简单代码编写-Python | 编写一个简单的Excel处理脚本

时间:2019-04-21 02:53:35

相关推荐

python简单代码编写-Python | 编写一个简单的Excel处理脚本

前段时间,温老师找我说财务处的某老师平日处理大量的Excel,很多都是机械的重复劳动,不胜其烦。和我简单说了下需求,看我能不能写个程序帮一下忙。

需求简述如下:

一个多行多列的Excel文档有一列为“项目代码”,总共有多行各不相同数据,而“项目代码”这列下为无次序出现的重复数据。需求是将相同的“项目代码”所在行的数据挑选出来,并单独生成一个以此项目代码命名的sheet,在此sheet中将数据按照顺序排列。

如图

显然这个是通过财务处网站导出的Excel,首先想到的是,应该多设计几个接口,直接在服务端用SQL语句解决这个问题。但是现状是没有设计这些功能,那么只能在这个文件上做文章。那么,首先想到的就是Python,py处理这些简单数据应该是最便捷的。不过之前还没有做过,需要做一些准备工作。

首先确定用需要用到处理表格数据的模块,xlrd、xlwt或者pandas,因为pandas听上去比较萌,这里选择这个,但是比较难受的一点是pandas没有中文文档,有些操作想查询需要啃英文。

我的思路是这样的:

1.首先把Excel文件读取到内存中,但是文件不是固定和单一的,考虑到使用者,较简单的方式是让用户输入需要处理的文件的绝对路径。

2.获取“项目代码”这列的所有数据,去重,排序,保存到一个project_code_list中。

3.循环读取这个project_code_list中的值,比如读到“1064801601”这个值后,遍历内存中的DataFrame,获取所有项目代码为“1064801601”的数据,将其保存在一个新的DataFrame中。

4.同时循环在源文件里写入新的sheet(使用project_code来命名),同时往这个sheet里写入数据。

5.考虑用户友好,需要写一定的异常抛出与处理。

接下来就是编码部分

思路确实很简单,但是需要编码实现,以及如何尽量写得优雅,又是另外一回事了。

因为手上还有其他事要做,所以代码没有写得很规范,异常处理也没有写,瑕疵比较多,但是既然功能实现了,也就懒得改了。

根据路径得到DataFrame

没有做异常处理与用户提示,假如用户输入了不存在的路径,那么程序会直接炸掉。所有这些都要注意。

获得流写入到指定路径文件

没有做异常处理。

写入到文件

这个函数写得很臃肿,其实应该另外定义一个handleExcel方法来专门处理数据,再用write2Excel来专门写入,另外相同的问题也是没有做异常处理。

主函数

最后就是考虑打包的问题,因为财务处老师办公室电脑上是肯定没有Python3环境和模块依赖的,最好直接给他一个exe可执行文件。查了资料,这边使用pyInstaller直接打包。

2K——22406K

下面看下运行及处理效果

emmm

数据没什么问题,该处理的也完成了,哎,就这样吧。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。