工作汇报神技!用Python三步生成带有图表的word报表
来源:互联网 发布:易幻网络校园招聘 编辑:程序博客网 时间:2024/05/21 03:24
最近在项目中做了一个生成并导出word报表的功能,在这里分享给大家。
经过查看ESPC原有的生成报表代码和网上查阅的一些方法,解决方案的思路如下:
1. 利用pychartdir库生成图表,保存图片,转成字节数据
2. 然后使用office办公软件编写所需要的模板word,另存为xml文件
3. 利用jinja2库渲染修改好的模板,然后写入.doc文件即可
那下面我将我实现的过程记录给大家分享一下。
一
利用pychartdir库生成图表,保存图片,转成字节数据
1.利用pychartdir库生成一个条形图
首先需要导入pychartdir库
我们以生成一个条形图为例子:
结果为一张图片:
2.我们在word中如果只是引用路径,那么生成的word就会出现找不到图片,此时,我们应该使用下面这个函数将图片转化为字节数据:
此时我们就拿到了我们想要的数据
我们可以将所需要画图的封装成一个工具类,只留取数据接口比如:
二
然后使用office办公软件编写所需要的模板word,另存为xml文件
1.使用office软件编写一个所需要的word模板,编写好之后选择另存,类型选择为xml文件。
2,使用sublime或者其他文本编辑打开xml文件,在模板相应位置替换成渲染的数据模型,具体语法和Django模板的语法基本一致,如:
三
利用jinja2库渲染修改好的模板,然后写入.doc文件即可
1.导入jinja2模块和相应模块
2.加载我们刚刚编辑好的word模板
3.打开和渲染模板
其中w_id和w_pname属性是word图片的属性,只要每一张图片id name唯一即可
全部代码如下:
运行代码,即可生成我们想要的word报表
参考资料及其链接:
Jinja2 安装:
pychartdir 安装:
Python 中要使用pychartdir的绘图的话需要安装pychartdir模块,其安装方法不同于其他python模块的安装。
1.先下载pychartdir,可从官网 http://www.advsofteng.com/download.html 下载对应的zip包
2.解压后的doc目录下有一个pychartdir.chm帮助文档
3.帮助文档中Installation中有描述安装的方法:
在python的安装目录下的Libsite-packages目录下新建chartdirector目录
将解压后的ChartDirectorlib目录下的所有文件复制到前面创建chartdirector目录下
在site-packages目录下新建一个chartdirector.pth文件,记事本打开,里面添加chartdirector,保存退出
4.打开python IDE,输入from pychartdir import *,如果导入成功则说明安装成功,可正常使用pychartdir
pychartdir API及其demo
http://www.advsofteng.com/doc/cdcfdoc/#cover.htm
Jinja2文档
http://docs.jinkan.org/docs/jinja2/
作者:袁庭飞
来源:http://blog.nsfocus.net/step-generate-word-reports-diagrams-py/
————广告时间————
《马哥Linux云计算及架构师》课程,由知名Linux布道师马哥创立,经历了8年的发展,联合阿里巴巴、唯品会、大众点评、腾讯、陆金所等大型互联网一线公司的马哥课程团队的工程师进行深度定制开发,课程采用 Centos7.2系统教学,加入了大量实战案例,授课案例均来自于一线的技术案例,培养过20%的学员月薪超过3万。
开课时间:11月06号
扫描二维码领取学习资料
感谢您抽出 · 来阅读此文
更多Python好文请点击【阅读原文】哦
↓↓↓
- 工作汇报神技!用Python三步生成带有图表的word报表
- 用C# 动态生成含有报表图表的word文件
- 用poi3和chartdirect生成带图表的excel报表
- java三步 在线生成图形报表-maven-jfreechat
- 一种生成Word报表的另类方式
- 一种生成Word报表的另类方式
- 基于Word模板的快速报表生成
- python生成带有表格的图片
- java生成带有样式、表格、不定图片的word
- 根据模板生成带有图片的 word 文档
- 【python 数据报表】发送带有样式和附件的邮件
- word自动生成图表目录
- java/word+fusionchart生成图表
- 接收前台用echarts生成的若干张图表转为word提供下载
- 不用生成临时文件的生成报表操作(带有模板的)
- .NET下的报表生成(三)
- 【用Word做名片 三步轻松搞定】
- 170530 百度学术+EndNote+Word/WPS生成论文参考文献(三步导入法)
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- The Little Redis Book中文版 第五章
- 数据结构-单链表节点的获取
- 【数据平台】python数据集连接和组合
- 大专技术支持学Linux云计算4个月搞定年薪12万
- 工作汇报神技!用Python三步生成带有图表的word报表
- freemarker的Boolean类型,在JavaScript转成Boolean类型
- 五分钟搞定Bash功能与使用技巧
- 分析unity source 4.3.1f1 源代码
- 买房子2
- 记在前面的话
- The Little Redis Book中文版 总结
- MySQL 实现每日全量备份,定时增量备份,自动恢复脚本
- neo4j 导入数据