问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

excel怎么实现报表自动化?

发布网友 发布时间:2022-04-21 03:45

我来回答

2个回答

热心网友 时间:2022-06-17 19:54

python操作Excel实现自动化报表

贺霆
贺霆
算法工程师
529 人赞同了该文章
Excel作为日常办公最广泛使用的工具之一,学好它可以帮助我们节约时间,提升工作效率,学会灵活高效的使用excel有着十分重要的意义。

本人觉得会使用大部分excel内置公式和以及VBA的就是高手了。

不过比这更高级的是用程序操作excel,针对相似性很高或者重复性、繁琐的excel任务用一个程序可以实现一劳永逸,夸张的说:可以节省你的生命 哈哈。

以下是python操作excel的介绍:

一、工具包

1.xlrd:从Excel电子表格中提取数据 doc地址:https://xlrd.readthedocs.io/en/latest/
2.xlwt:将数据写入Excel电子表格 doc地址:https://xlwt.readthedocs.org/en/latest/
3.xlutils:提供一组处理Excel文件的实用程序 doc地址:https://xlutils.readthedocs.io/en/latest/
二、安装

python -m pip install xlrd xlwt xlutils
三、基本用法

python操作excel的相关工具包可以具体到操作指定单元格的填充样式、数值类型、数值大小等等。然而python操作excel需要一定pandas数据处理功底,后续将补上章节:pandas数据处理技能

1.从指定文件路径读取excel表格,进行一定操作,然后保存到另一个excel文件:result.xlsx

import xlwt
import xlrd
from xlutils.copy import copy
import pandas as pd
from pandas import DataFrame,Series
import os
os.chdir('./')
# 从指定文件路径读取excel表格
df = pd.read_excel('D:/mypaper/data/data.xlsx')
# 查看df内容

# 根据age算出出生年份,增加一列
import datetime
import os
year = datetime.datetime.now().year#获取当前系统时间对应的年份
df['birth'] = year-df['age']
df.to_excel('result.xlsx')#保存到当前工作目录,可以用os.getcwd()查看
#查看下此时df的内容,可以看到已经生成了birth这一列

乍看好像只用到了pandas,还没有用到上面介绍的三个工具包,下面介绍利用python操作excel底层

2.单元格操作

# 定义方法:读取指定目录下Excel文件某个sheet单元格的值
def excel_read(file_path,table,x,y):
data = xlrd.open_workbook(file_path)
table = data.sheet_by_name(table)
return table.cell(y,x).value

# 定义方法:单元格值及样式
write_obj_list = []
def concat_obj(cols,rows,value):
write_obj_list.append({'cols':cols,'rows':rows,'value':value,\
'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})

# 定义方法:合并单元格
def merge_unit(srows,erows,scols,ecols,value):
write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,\
'ecols':ecols,'value':value,'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})

# 定义方法:更新excel
excel_update(file_path,write_obj_list,new_path):
old_excel = xlrd.open_workbook(file_path, formatting_info=True)
#管道作用
new_excel = copy(old_excel)
'''
通过get_sheet()获取的sheet有write()方法
'''
sheet1 = new_excel.get_sheet(0)
'''
1代表是修改第几个工作表里,从0开始算是第一个。此处修改第一个工作表
'''
for item in write_obj_list:
if 'id' not in item.keys():
if 'style' in item.keys():
sheet1.write(item['rows'], item['cols'], item['value'],item['style'])
else:
sheet1.write(item['rows'], item['cols'], item['value'])
else:
if 'style' in item.keys():
sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'],item['style'])
else:
sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'])
'''
如果报错 dict_items has no attributes sort
把syle源码中--alist.sort() 修改为----> sorted(alist)
一共修改2次
'''
new_excel.save(file_path)

#参数详解
# srows:合并的起始行数
# erows:合并的结束行数
# scols:合并的起始列数
# ecols:合并的结束列数
# value:合并单元格后的填充值
# style:合并后填充风格:
# font: name 宋体
# height 280;
# alignment: horiz centre
# ... 与excel操作基本保持一致

注意:该方法仅仅是将需要直行的动作保存到一个list中,真正的动作还未执行,执行动作是发生在excel_update方法中
最终调用excel_update方法,传入每个单元格需要进行的操作和填充值的write_obj_list以及文件保存路径file_path

就可以在当前工作目录下生成想要的Excel结果文件。

注意:
1.write_obj_list支持用户自定义
2.write_obj_list也可以是根据excel_read方法读取现有待修改的excel文件(可以维持原有表格的格式)而生成

python操作excel还有很多其他的基本方法,因篇幅的*不再陈述和演示,想要深入研究的可以点击上面的doc地址

热心网友 时间:2022-06-17 19:54

想实现报表自动化还得依靠BI工具去实现,Smartbi Excel分析就是面向Excel用户的数据分析工具,它结合了Excel的优点,解决了Excel的问题,真正做到赋能企业一线业务用户,让人人都是自助分析师,促进企业的全民数字化运营。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中医能辅助治疗腹水吗 飞行堡垒7零度左右电池显示0%一直正在充电充不进电怎么解决?_百度... ...手机就关机了。一直充也充不进电。为什么呢 富士s205可以用银燕 BY—30stz 的闪光灯么? 富士S205EXR相机适合什么样型号的外置闪光灯 请教高人,富士s205拍微距,能配环闪吗,什么型号,怎么配。谢谢。 逛超市不愿意提东西的男人,还要吗? 男子每天逛超市,一分没花还倒赚3万,经理:难怪监控查不出来,你怎么... 中国g5大学什么意思 求解,上海电信全屋WiFi性价比高不高 怎样使用excel制作各种企业报表? excel怎么使用if函数和名称管理器功能制作动态报表? Excel教程 如何设置自动生成分页报表 Excel 报表怎么做 如何使用excel表格做月报表? 怎么用excel做报表 excel怎么做报表 求小本创业项目 比较知名的女装品牌有哪些? 北京那里造型做一次头发的价格 生活中的小欢喜,宋Pro,谈谈自己的用车感受! 五爱市场有卖工艺品摆件的吗 谁知道建外SOHO附近,哪个理发店的手艺比较好? 给几首清初的秋水轩唱和词吧!谢谢 如何瘦腿(大腿、小腿)塑腿型,瘦肚子上的肉肉。。。 作为一个微胖女孩,买衣服真的很难,淘宝上适合微胖女孩的店铺有什么? 杭州有哪些知名的服装公司? 深圳福永宝利来国际大酒店的设施服务 容桂各大书店在哪? 斯柯达明锐Pro化身溜背轿跑,这款车能和轩逸比吗? 生产日报表怎么统计汇总 如何用excel编制财务报表 Excel 表格怎么进行操作教程 Excel中,当报表较长或较宽时,应如何进行页面设置? 基金持仓平均成本怎么算? 基金持仓成本价是什么意思? 如何计算成本价(持仓成本)? 基金分红后在买入怎么算持仓成本? 什么叫持仓价成本价 怎样计算基金的持仓价 基金持仓成本价怎么算? 基金补仓后成本单价怎么计算?谢谢 基金持仓单价是什么意思 ffex持仓本金是多少 基金持仓相关计算公式? 基金持仓成本怎么算 你好,我买的基金第一次是低价购入,第二次是高价购入,基金持仓成本价怎么算? 三星smg6000真伪辩别 如鲸向海 似鸟投林 这句话来自哪,有没有对应的下一句,跪求。 404 Not Found