用Python许久,最近公司开始盛行报表,各种活堆积在我这。基本上的数据操作都用代码解决了,最后呈现报表的时候领导提了一个别致的需求:把所有表都放在同一个sheet中吧。
用惯了pandas的我竟然不知所措。
表1:
表2:
使用append:
这结果让人无法接受。
最让人头疼的是领导需求格式如下:
怎么操作呢?
pandas可以做,但过程太过曲折复杂,而且输出结果么有特定格式。是时候让我们的王者:openpyxl再现于世了。
在编程之前我们将要求的格式数据拷贝到一个新的Excel,并且给它附上自己喜欢的颜色、格式。
比如这样
然后清空所有数据:
并且保存为【模板.xlsx】。为啥这么做,看了你就明白了。
导入模块
读取数据
data为原始数据
模板为上面准备的样式
读取sheet名称
输出
两个表合并到一个表。
计算表1的最大横竖
复制信息
m,n维度
chr()把数字转化为字母。
运行结果
第一个表复制完毕。
复制第二个表
读取第二个sheet
重置-行列-数值
被复制的sheet2,按照行列差分别补上数值:2,6。
运行结果
和初始的一模一样。
三个表
从data中的2个sheet分别把代码拷贝到模板,上色上格式,然后导出到【领导要求数据.xlsx】中。
是不是觉得很简单,简单的没有必要这么做?不是的。假设一个报表你需要每天做,每个小时做,而且复制的表格多达几十页,并且需要按照神级领导的要求排版。你就会明白这么做的好处了。
所以在桌面保留好模板即可,每次产生data文件,点击运行代码即可完工。甚至可以写一个程序让代码定时定点自动运行数据,岂不更好。
全部代码
Excel的代码到这里就差不多了,暂时想不出其他有挑战的需求,如果你有什么别致的有难度的想法,可以留言。
领取专属 10元无门槛券
私享最新 技术干货