
python实现报表自动化详解
本篇文章将介绍:
xlwt 常用功能
xlrd 常用功能
xlutils 常用功能
xlwt写Excel时公式的应用
xlwt写入特定目录(路径设置)
xlwt Python语言中,写入Excel文件的扩展工具。可以实现指定表单、指定单元格的写入。支持excel03版到excel2013版。使用时请确保已经安装python环境
xlrd Python语言中,读取Excel的扩展工具。可以实现指定表单、指定单元格的读取。使用时请确保已经安装python环境。
NOTICE:
xlwt对Excel只能进行只写操作
xrrd对Excel只能进行只读操作
此外,还有xlutils.copy可以实现Excel的复制再编辑。
1.python写excel — xlwt常用功能
A.准备工作
安装xlwt :在终端中输入pip install xlwt或者easy_install xlwt
引入xlwt包 :
import xlwt # 写
B.基础教程
新建工作簿&增加sheet: 新建一个工作簿,然后往里添加sheet
f = xlwt.Workbook() # 创建工作簿
sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)
#一个excel表格中可以添加多个sheet
往sheet中写入内容: sheet.write函数可以传三个参数
第i(参数1)第j(参数2)列存入内容(参数3)
sheet1.write(i, j, '第i行第j列存放此内容', style)
# 这条语句实现的功能就是往第i行第j列存第三个参数的内容,第四个参数是样式(如字体,背景),可以不传第四个参数。
合并单元格并写入内容:
sheet1.write_merge(x, x + m, y, y + n, '内容', style)
# 这条y语句表示将[x:x+m]行[y:y+n]列的矩阵合并成一个单元格。存放第五个参数的内容,同理,style参数可以不传参
最后使用f.save(‘demo')
就可以把f保存到excel了
C.实战
我们可以先新建一个工作簿,然后往里添加两个sheet,然后查看效果
效果如下,发现表格xlwt_tutorial中有两个sheet。
我们开始往sheet中写入内容,不传入style参数
先只使用write函数
效果如下,我们建立了一个3行4列的表格。(write函数行和列值都是从0开始的)
下面我们使用write_merge函数来合并单元格并写入
在f.save之前添加一行代码
效果如下,将第2-3行第4列合并
2.pythonxd读excel —xlrd常用功能
A.准备工作
安装xlrd :在终端中输入pip install xlrd或者easy_install xlrd
引入xlrd包 :
import xlrd # 读
B.基础教程&实战
打开一个Excel,然后输出所有sheet的名字
#coding=utf-8
import xlrd
import uniout
f = xlrd.open_workbook(r'xlwt_tutorial')
print f.sheet_names()
输出:[u'葡小萄', u'小葡萄']
得到表格里的所有的sheet
for i in range(len(f.sheet_names())):
sheet1 = workbook.sheet_by_index(i)
得到sheet中的内容
f = xlrd.open_workbook(r'xlwt_tutorial')
sheet1 = f.sheet_by_index(0) #打开第一个sheet
sheet2 = f.sheet_by_name(u'小葡萄') #打开名字为小葡萄的sheet
#输出sheet的名称,行数,列数
print sheet1.name,sheet1.nrows,sheet1.ncols
print sheet2.name,sheet2.nrows,sheet2.ncols
输出为:
葡小萄 3 4
小葡萄 0 0
.
print sheet1.row_values(1) #获取第二行内容
print sheet1.col_values(2) #获取第三列内容
输出为:
[u'葡萄', 18.0, u'北京电影学院', u'汉语言文学']
[u'学校', u'北京电影学院', u'帝国国王科技大学']
.
输出为:
葡萄
2
3.xlutils 常用功能
A.准备工作
安装xlutils :在终端中输入pip install xlutils或者easy_install xlutils
引入xlutils包 :
B.xlutils中copy功能
我们可能会遇到一个问题,想对一个存储好的Excel进行编辑。
但是xlrd是只读模式,不能进行编写。
而xlwt是只写模式,不能读入Excel文件进行编辑。
我们可以采用xlrd打开一个文档,后采用xlutils中copy功能把文档拷贝,然后进行编辑即可。
输出为:
葡小萄
输出的表格已经改变。
PS: 可以看到第二行第四列和第三行第四列合并格已经在COPY的时候被毁掉了。
4.xlwt写Excel时公式的应用
我们写用xlwt写一个表格
打开表格为:
我们现在想做的是统计grape的总分和monkey的总分:
在f.save之前加入代码:
sheet1.write(5,0,u'总分统计')
输出为:
B2+B3+B4+B5
C2+C3+C4+C5
打开表格为:
5.xlwt写入特定目录(路径设置)
由于代码分层的缘故,使代码整体框架优美。
我们需要把文件写入到特定目录下。
但是由于xlwt中没有直接写入到特定目录的函数。
因此使用shutil.move函数来把文件MOV到特定目录下:
效果图:
总结
以上就是本文关于python实现报表自动化详解的全部内容,希望对大家有所帮助数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数据成为新时代“石油”的今天,几乎每个职场人都在焦虑: “为什么别人能用数据驱动决策、升职加薪,而我面对Excel表格却无从 ...
2025-10-18数据清洗是 “数据价值挖掘的前置关卡”—— 其核心目标是 “去除噪声、修正错误、规范格式”,但前提是不破坏数据的真实业务含 ...
2025-10-17在数据汇总分析中,透视表凭借灵活的字段重组能力成为核心工具,但原始透视表仅能呈现数值结果,缺乏对数据背景、异常原因或业务 ...
2025-10-17在企业管理中,“凭经验定策略” 的传统模式正逐渐失效 —— 金融机构靠 “研究员主观判断” 选股可能错失收益,电商靠 “运营拍 ...
2025-10-17在数据库日常操作中,INSERT INTO SELECT是实现 “批量数据迁移” 的核心 SQL 语句 —— 它能直接将一个表(或查询结果集)的数 ...
2025-10-16在机器学习建模中,“参数” 是决定模型效果的关键变量 —— 无论是线性回归的系数、随机森林的树深度,还是神经网络的权重,这 ...
2025-10-16在数字化浪潮中,“数据” 已从 “辅助决策的工具” 升级为 “驱动业务的核心资产”—— 电商平台靠用户行为数据优化推荐算法, ...
2025-10-16在大模型从实验室走向生产环境的过程中,“稳定性” 是决定其能否实用的关键 —— 一个在单轮测试中表现优异的模型,若在高并发 ...
2025-10-15在机器学习入门领域,“鸢尾花数据集(Iris Dataset)” 是理解 “特征值” 与 “目标值” 的最佳案例 —— 它结构清晰、维度适 ...
2025-10-15在数据驱动的业务场景中,零散的指标(如 “GMV”“复购率”)就像 “散落的零件”,无法支撑系统性决策;而科学的指标体系,则 ...
2025-10-15在神经网络模型设计中,“隐藏层层数” 是决定模型能力与效率的核心参数之一 —— 层数过少,模型可能 “欠拟合”(无法捕捉数据 ...
2025-10-14在数字化浪潮中,数据分析师已成为企业 “从数据中挖掘价值” 的核心角色 —— 他们既要能从海量数据中提取有效信息,又要能将分 ...
2025-10-14在企业数据驱动的实践中,“指标混乱” 是最常见的痛点:运营部门说 “复购率 15%”,产品部门说 “复购率 8%”,实则是两者对 ...
2025-10-14在手游行业,“次日留存率” 是衡量一款游戏生死的 “第一道关卡”—— 它不仅反映了玩家对游戏的初始接受度,更直接决定了后续 ...
2025-10-13分库分表,为何而生? 在信息技术发展的早期阶段,数据量相对较小,业务逻辑也较为简单,单库单表的数据库架构就能够满足大多数 ...
2025-10-13在企业数字化转型过程中,“数据孤岛” 是普遍面临的痛点:用户数据散落在 APP 日志、注册系统、客服记录中,订单数据分散在交易 ...
2025-10-13在数字化时代,用户的每一次行为 —— 从电商平台的 “浏览→加购→购买”,到视频 APP 的 “打开→搜索→观看→收藏”,再到银 ...
2025-10-11在机器学习建模流程中,“特征重要性分析” 是连接 “数据” 与 “业务” 的关键桥梁 —— 它不仅能帮我们筛选冗余特征、提升模 ...
2025-10-11在企业的数据体系中,未经分类的数据如同 “杂乱无章的仓库”—— 用户行为日志、订单记录、商品信息混杂存储,CDA(Certified D ...
2025-10-11在 SQL Server 数据库操作中,“数据类型转换” 是高频需求 —— 无论是将字符串格式的日期转为datetime用于筛选,还是将数值转 ...
2025-10-10