0

0

Python分析报告自动生成_pdf与Excel输出实例【教程】

舞夢輝影

舞夢輝影

发布时间:2025-12-20 22:34:36

|

616人浏览过

|

来源于php中文网

原创

python自动生成分析报告需三步联动:pandas处理数据、matplotlib/seaborn可视化、openpyxl写excel、pdfkit(基于wkhtmltopdf)转html为pdf;关键在选对工具、理清流程、解决中文显示、分页与图表刷新问题。

python分析报告自动生成_pdf与excel输出实例【教程】

用Python自动生成分析报告并导出为PDF和Excel,核心在于“数据处理 + 可视化 + 文档编排”三步联动。关键不是堆砌库,而是选对工具、理清流程:pandas做数据整理,matplotlib/seaborn绘图,openpyxl或xlsxwriter写Excel,而PDF推荐使用pdfkit(基于wkhtmltopdf)或reportlab——前者适合HTML转PDF(易上手、样式灵活),后者适合完全代码控制布局(学习成本略高)。

一、准备环境与基础依赖

确保安装以下常用库:

  • pandas:读取、清洗、汇总数据
  • matplotlibseaborn:生成统计图表(注意设置plt.rcParams['font.sans-serif']支持中文)
  • openpyxl:向Excel写入带样式的表格、图表(支持.xlsx)、多Sheet管理
  • pdfkit + wkhtmltopdf:将HTML模板转为PDF(需单独下载wkhtmltopdf二进制并配置路径)
  • jinja2:渲染动态HTML报告模板(插入标题、表格、图片路径等)

二、Excel报告:结构清晰、开箱即用

openpyxl可实现表头加粗、列宽自适应、数字格式化、甚至嵌入图表。示例逻辑:

  • 创建Workbook,添加多个Worksheet(如“概览”“明细”“图表”)
  • dataframe.to_excel(writer, sheet_name='概览', index=False)写入基础表
  • 手动设置单元格样式:ws['A1'].font = Font(bold=True)ws.column_dimensions['B'].width = 15
  • 从matplotlib保存图表为PNG,再用openpyxl.drawing.image.Image()插入工作表

三、PDF报告:HTML为桥,样式可控

比直接用reportlab更快落地的方式是:先用Jinja2生成含CSS样式的HTML,再用pdfkit转PDF。

拍我AI
拍我AI

AI视频生成平台PixVerse的国内版本

下载

立即学习Python免费学习笔记(深入)”;

  • 编写HTML模板(report_template.html),预留{{ title }}{{ table_html }}{{ chart_path }}等变量
  • 在Python中用df.to_html(index=False, classes='table')生成表格HTML片段
  • 保存matplotlib图表为本地PNG(如chart1.png),路径传入模板
  • 调用pdfkit.from_file('report.html', 'output.pdf')一键输出
  • 注意:CSS中用@page { size: A4; margin: 1cm; }控制页边距,避免截断

四、整合成函数,一键生成双格式

封装主函数,统一输入数据源(CSV/Excel),自动完成清洗→分析→绘图→写Excel→生成HTML→转PDF:

  • 函数接收参数:input_pathoutput_prefix(如"sales_q3")
  • 内部按顺序执行各模块,出错时抛出明确提示(如“图表未生成,请检查matplotlib后端”)
  • 最终输出:sales_q3_report.xlsxsales_q3_report.pdf
  • 建议加日志记录关键步骤耗时,便于后续优化批量任务

不复杂但容易忽略:中文显示问题(字体配置)、PDF分页断裂(CSS控制page-break-inside: avoid)、Excel图表刷新延迟(保存前调用wb.save()而非仅close())。把这三关调通,日常业务报告自动化就稳了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

78

2025.12.04

Python 数据清洗与预处理实战
Python 数据清洗与预处理实战

本专题系统讲解 Python 在数据清洗与预处理中的核心技术,包括使用 Pandas 进行缺失值处理、异常值检测、数据格式化、特征工程与数据转换,结合 NumPy 高效处理大规模数据。通过实战案例,帮助学习者掌握 如何处理混乱、不完整数据,为后续数据分析与机器学习模型训练打下坚实基础。

32

2026.01.31

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

120

2025.10.15

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

261

2025.10.24

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

443

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

605

2023.08.10

margin在css中是啥意思
margin在css中是啥意思

在CSS中,margin是一个用于设置元素外边距的属性。想了解更多margin的相关内容,可以阅读本专题下面的文章。

466

2023.12.18

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

66

2025.12.13

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

CSS教程
CSS教程

共754课时 | 42.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号