美文网首页Python,web开发,前端技术分享大数据 爬虫Python AI Sql码农的世界
用Python三步生成带有图表的word报表,工作神技巧!

用Python三步生成带有图表的word报表,工作神技巧!

作者: IT派森 | 来源:发表于2019-08-10 22:31 被阅读3次

    最近在项目中做了一个生成并导出word报表的功能,在这里分享给大家。

    经过查看ESPC原有的生成报表代码和网上查阅的一些方法,解决方案的思路如下:

    1.****利用pychartdir库生成图表,保存图片,转成字节数据

    2.****然后使用office办公软件编写所需要的模板word,另存为xml文件

    3.****利用jinja2库渲染修改好的模板,然后写入.doc文件即可

    那下面我将我实现的过程记录给大家分享一下。

    大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地!!同时,自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每日分享一些学习的方法。和需要注意的小细节

    这里是python学习者聚集地

    一、利用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 安装:
    pip install Jinja2

    pychartdir 安装:
    Python中要使用pychartdir的绘图的话需要安装pychartdir模块,其安装方法不同于其他python模块的安装。

    1.先下载pychartdir,可从官网http://www.advsofteng.com/download.html下载对应的zip包

    2.解压后的doc目录下有一个pychartdir.chm帮助文档

    3.帮助文档中Installation中有描述安装的方法:

    在python的安装目录下的Lib\site-packages目录下新建chartdirector目录

    将解压后的ChartDirector\lib目录下的所有文件复制到前面创建chartdirector目录下

    在site-packages目录下新建一个chartdirector.pth文件,记事本打开,里面添加chartdirector,保存退出

    4.打开python IDE,输入from pychartdir import *,如果导入成功则说明安装成功,可正常使用pychartdir

    pychartdir API及其demo

    相关文章

      网友评论

        本文标题:用Python三步生成带有图表的word报表,工作神技巧!

        本文链接:https://www.haomeiwen.com/subject/suhydctx.html