有一段时间没有写Python代码了,主要还是个人工作变动原因,耽误了一些时间,It’s cool define your work with python.
需求:
需求是这么挖出来的,公司统一的使用了Oracle EBS 作为ERP系统,当然,报表也是统一的,所有的地点都是采用的标准的报表,实际操作过程中,一个标准报表的所有字段无法满足所有工厂的需求。那么,问题就出现了,如果改了标准报表,其他的工厂又不需要,另外,除非客制化这个报表。如果每个地点都客制化报表,工作量又上来了。
在这个的场景下,使用公司标准的报表没毛病,就是后期要对报表进行二次加工,数据量少还行,如果数据量大的话,修改成符合要求的报表就要额外多花时间处理,有的要额外多花1到2个小时来加工报表,确实是添加了不少工作量。当然,有了python处理之后,一切就简单了。喝杯茶,聊聊天,顺手把报表的问题解决了。
分析:
通过Python处理流程如下:
在笔者遇到的这个场景中,从报表系统中导出excel数据,这些数据需要跟initial data 做对比,当中有个逻辑,
用当前时间与期初数据时间做比较,分为3,6,9,12个月,时间的差额落在哪个区间范围内,采用不同的计算方式。
实现:
这个场景是要两个excel数据做比较,有朋友会说,用vlookup可以做比较,是的,当然可以,不是费时间嘛。用python就简单多啦,代码写好,眼镜看看就可以了。
这里我们采用了openpyxl, 这个库还真不错,主要是操作xlsx, 读,写,设置格式,感觉还行。
步骤如下:
- 导入安装openpyxl.
from openpyxl import load_workbook
from openpyxl.styles import Font,colors,Alignment,PatternFill
- 下面就是设计的逻辑之类的代码,其实贴出来意义不大,因为每个人的场景不一样。
- 检测结果文件是否存在
- 检测数据源是否准备好
- 获取期初数据
- 创建新的结果文件
- 文件遍历并更新数据
- 保存退出
总结:
说实话,这个算是练练手,确实没有亮点可以展示出来,找一下感觉吧,体验一下python在excel操作上面的便捷,目前为止,感觉不错。