缺点:①入门难:VBA代码太不友好了 , 很容易就从入门到放弃 ②数据处理量有限:一旦数据量到十几万行的话 , Excel就撑不住了 , 可能你花了三天三夜做好的报表 , 就直接卡到打不开了 。
二、掌握Python , 就写代码来实现报表自动化优点:能够实现很多自动化设计 , 从读取数据到输出数据都可以完成
缺点:①需要操作者学会写代码 , 学习成本比较高 。 ②数据处理量有限:如果说企业数据量涉及千万上亿条数据 , 一年可能要做上千张报表 , python加载数据就会极其卡顿 , 影响工作 。 ③一些复杂的报表 , 尤其是非数据类的报表用Python开发也不适合 , 比如下方打印货单的凭证、发票套打 。
说了这么多 , 还是举个例子来实践一下吧
一次自动化的报表制作 , 通常需要经历这样几个步骤:
- 连接并操作数据库
- 数据处理+自动化报表
- 设置定时邮件发送给相关人员
Python可以连接并操作各种数据库 , 包括Oracle、PostgreSQL、MySQL、SQL Server 等等 。 不同的数据库 , 需要安装不同的第三方模块 , 比如说 , 要操作Oracle , 那么通常需要先安装 cx_Oracle:
pip install cx_Oracle
在开始操作数据库之前 , 需要先创建一个数据库引擎 , 然后再连接数据库:
from sqlalchemy import create_engine# 创建数据库引擎engine = create_engine('oracle://user:password@ip_address:1521/orcl')# 连接数据库con = engine.connect()
如果你有数据库账号拥有创建表的权限 , 那么就可以对数据库进行增删改查的操作 。
# 增con.execute(\"insert into usr(id name) values(1 'Jim')\")
con.execute(\"insert into usr(id name) values(2 'Joe')\")# 删con.execute('delete from usr where id = 1')# 改con.execute(\"update usr set name = 'Jack' where id = 2\")# 查sql = 'select id name from usr where id = :id'import pandas as pd
df = pd.read_sql(sa.text(sql) engine params={'id': 2)
df
另外 , 利用Python去执行各种SQL 语句 , 自动完成更加复杂的数据库操作 。
2、数据处理+自动化报表
在Python执行SQL后 , 取出原始数据
想要实现的报表如下 , 这张日报表是用来监控每一天的销售、发货和用户反馈情况
代码如下(非完整版):
3、设置定时邮件发送给相关人员
以上就是一个典型的日报表 , 源数据不变 , 报表格式不变 , 就可以通过这段脚本自动生成 , 生成的报表也可以实现推送 , 利用Python实现自动化发送邮件 。
三、学会简单SQL , 用报表工具一步实现报表自动化刚刚举了Excel和Python的例子 , 但其实这两个方法各有各的优缺点 , 那有没有一种工具能融合两个方法的优点 , 又同时能避开它们的缺点?其实市面上已经有很多成熟的报表工具 , 可以解决这个问题 , 我拿知名度较高的报表工具FineReport举例吧 。 (文末可免费获得激活码)
相比较Python , 在都能一步取数、输出数据的前提下 , FR不需要写几百行的复杂代码 , 只需要学会简单的SQL语言 , 就能取数设计报表 , 绝大多数没有代码基础的人也能上手 , 且因为用的是类Excel的操作界面 , 使用习惯也不会有太大的改变 。 再相较Excel , FR能够直接从数据库取数 , 数秒处理几万行的数据 , 不用再苦苦等着加载报表 。
说了这么多 , 还是和上面一样 , 举个例子 , 看FR是如何让报表自动化 , 让打工人摆脱报表折磨的 。 其实很简单 , 只需解决三个难题:
- 第一步:报表如何取数
- excel|职场办公必备的9个函数公式,你还不掌握吗?那就加班别喊累
- 一图读懂|封控区、管控区、防范区划分标准是什么?管控措施有何区别?
- 佳能|佳能相机、镜头再次严重缺货 EOS R3交付周期长达半年
- 创业|百亿“独角兽”诞生,小米、比亚迪领投24亿,背后团队非常强!
- 中兴|20G运存、6.92英寸大屏幕,512G才三千出头,中兴确实很给力
- 华为|该来的还是来了,英、美方面传来消息,华为的态度也很坚决
- 美团|受益于物联网:拓邦营收78亿、和而泰60亿,智能控制器龙头之争
- 阿里巴巴|大牛证券|恒指破关键点位,阿里、腾讯创新低,大佬抄底也被套!
- gen.g战队|骁龙8Gen1彻底沦为中端机,仅2689元,还有大电池、三主摄2个优点
- 亚马逊|亚马逊、eBay、速卖通、lazada、Shopee等跨境平台,如何打造爆款