用Python自动化处理Excel生成报表
贺霆
贺霆
算法工程师
529人点赞本文
Excel是日常办公中最常用的工具之一,熟练掌握它不仅能节省时间,还能显著提高工作效率,灵活高效地运用Excel具有重要意义。
掌握大部分Excel内置函数及VBA编程者,堪称办公软件应用高手。
更高级的方式是用程序操作Excel,对于高度相似或重复繁琐的任务,编写程序可一劳永逸,极大提升效率,毫不夸张地说,简直是在节省生命,哈哈。
Python操作Excel简介:读写表格数据
一、工具包
二、安装
三、基本用法
Python 提供了多种工具包,可精确操作 Excel 中指定单元格的填充样式、数据类型及数值大小等属性。但熟练运用这些功能需具备一定的 pandas 数据处理基础。后续章节将补充讲解 pandas 的核心技能,帮助提升数据处理与 Excel 操作能力。
读取指定路径的Excel文件,进行处理后将结果保存至名为result.xlsx的新文件中。
import os
读取指定路径的Excel文件
查看df内容
按年龄计算出生年份并新增一列
import os
获取当前系统时间的年份,存储到变量 year 中。
将数据保存为Excel文件,路径为当前工作目录下的result.xlsx,可通过os.getcwd()查看具体路径。
查看当前df内容,可见已成功添加birth列。
乍看似乎仅使用了pandas,尚未涉及前述三大工具包,接下来将介绍如何利用Python深入操作Excel底层功能。
2.单元格操作
定义方法:读取指定目录中Excel文件某工作表单元格的数值。
定义单元格的值与格式方法
设置样式:字体为宋体,字号280,水平居中对齐。
合并单元格的定义方法
将参数设置为:ecols: ecols,value: value,样式采用 xlwt.easyxf 定义,字体为宋体,高度 280,水平对齐方式居中。
定义方法:刷新Excel数据
管道作用
get_sheet()获取的sheet对象具备write()方法,可用于写入数据。
1表示要修改的工作表序号,从0开始计数,此处为第一个工作表。
else:
else:
else:
若提示 dict_items 无 sort 属性,说明该对象不支持排序操作。
将syle源码中的--alist.sort()替换为-> sorted(alist)。
一共修改2次
参数详解
srows:表示合并单元格的起始行号
合并单元格的结束行号
scols:表示合并单元格的起始列号
ecols:指定合并区域的结束列
合并单元格后填充的数值内容
合并单元格并统一填充样式
宋体字体,名称为宋体
操作方式与Excel基本相同,便于用户上手使用。
该方法仅将直行操作存入列表,尚未实际执行,具体动作将在excel_update方法中进行。
最后调用excel_update方法,将包含单元格操作及填充值的write_obj_list和文件保存路径file_path作为参数传入。
将在当前工作目录生成所需的Excel文件。
注意:
write_obj_list功能支持用户自定义设置
write_obj_list也可通过excel_read方法读取现有需修改的Excel文件生成,能够保留原有表格格式。
Python操作Excel还有诸多基础方法,受限于篇幅不再一一展示,感兴趣者可点击上方文档链接深入了解。
该案例展示了创建透视表后,系统如何按指定字段自动分类,并生成各项目独立报表的过程。
小编先从网上下载原始数据表,用Excel 2007打开后,点击菜单栏的插入→数据透视表,弹出创建对话框,选定表格区域和放置位置,确认即可完成设置。
在Excel 2007中设置数据透视表自动创建分页报表。

在右侧数据透视表字段列表中,将地区和城市移至报表筛选,姓名移至列标签,类别名称移至行标签,求和项移至数值区域。
在Excel 2007中设置数据透视表自动分页生成报表。

点击数据透视表,展开选项旁的下拉箭头,显示报表筛选页面。
在Excel 2007中设置数据透视表自动创建分页报表。
选地区,确认。
在Excel 2007中设置数据透视表自动分页打印报表。
通过下方标签可查看东北、华北、华东、华南、西北及西南各区域的数据报表,实现整体报表的分页展示。
