0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

马哥Linux运维 来源:lq 2019-01-21 11:10 次阅读

最近在项目中做了一个生成并导出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/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • word
    +关注

    关注

    1

    文章

    78

    浏览量

    21934
  • 函数
    +关注

    关注

    3

    文章

    4329

    浏览量

    62576
  • 数据模型
    +关注

    关注

    0

    文章

    49

    浏览量

    10001

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

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何用属性节点设置采集温度的字节数???

    。如何用属性节点设置采集温度的字节数???图一不能实现实时采集,采集的数据一直都是第一次采集的,图二不能控制字节数
    发表于 04-05 13:49

    labview怎么把字节数转成数值?

    labview怎么把字节数转成数值?新人刚学习不久……尝试了很多方法,都没成功,还望高手指点一下。
    发表于 12-02 16:47

    如何利用PC机向stm32发送一个字节数据点亮LED灯?

    如何利用PC机向stm32发送一个字节数据点亮LED灯?
    发表于 11-17 07:16

    STM32 HAL串口是如何实现发送16字节数据

    STM32 HAL串口是如何实现发送16字节数据的?STM32 HAL串口是如何实现发送32字节数据的?
    发表于 12-02 07:58

    USB虚拟串口如何实现多字节数据接收?

    USB虚拟串口原理是什么?USB虚拟串口如何实现多字节数据接收?
    发表于 12-07 07:39

    STM32单片机是如何利用IDLE中断接收不定长字节数据

    IDLE中断什么时候发生?如何配置好IDLE中断?STM32单片机是如何利用IDLE中断接收不定长字节数据的?
    发表于 12-09 07:02

    Stm32串口发送字节数据怎么实现?

    Stm32串口发送字节数据怎么实现?
    发表于 12-13 07:40

    求双字节数据块的(异或)校验和

    求双字节数据块的(异或)校验和 入口条件:数据块的首址在DPTR中,双字节数据总个数在R6、R7中。出口信息:校验和在R2、R3中。影
    发表于 01-19 22:57 2941次阅读

    求单字节数据块的(异或)校验和

    求单字节数据块的(异或)校验和 入口条件:数据块的首址在DPTR中,数据的个数在R6、R7中。出口信息:校验和在累加器A中。影响资
    发表于 01-19 22:58 3327次阅读

    HL配套C实验例程串口发送一字节数据

    HL配套C实验例程串口发送一字节数据,配合开发板学习效果更好。
    发表于 04-11 17:04 3次下载

    如何利用单片机向PC发送一个字节数据

    //流水灯控制码,该数组被定义为全局变量 /***************************************************** 函数功能:向PC发送一个字节数据
    发表于 11-23 15:53 8035次阅读

    AD7228:LC2MOS八字节数据交换

    AD7228:LC2MOS八字节数据交换
    发表于 05-08 10:52 6次下载
    AD7228:LC2MOS八<b class='flag-5'>字节数据</b>交换

    8 KB闪存128字节数据EEPROM STM8S003F3P6产品说明

    8 KB闪存128字节数据EEPROM STM8S003F3P6产品说明
    发表于 11-08 16:25 5次下载

    单片机串口接收多字节数据

    单片机串口接收多字节数据
    发表于 11-17 09:51 42次下载
    单片机串口接收多<b class='flag-5'>字节数据</b>

    【RT-Thread学习笔记】使用hexdump打印字节数

    【Linux C语言编程】使用hexdump打印字节数
    的头像 发表于 07-30 13:59 2570次阅读
    【RT-Thread学习笔记】使用hexdump打印<b class='flag-5'>字节数</b>组