python这个库很有用,可以格式化生成报告等。

其他内容请点此处,下面只写docxtpl的功能代码。

# coding: utf-8
import web # 我们用的webpy框架
import StringIO
form docxtpl import DocxTemplate def doctest():
tpl = DocxTemplate('E:/safe.docx') # 读取docx模板,注意:需要提前设置好模板,下面会介绍
tpl = DocxTemplate('/home/sysadm/shell/usm/usm_tk_online2/usm/www/safetytrain/safe.docx')
# 将文件流返回
web.header('Content-type', 'aapplication/msword') # 指定返回类型
web.header('Transfer-Encoding', 'chunked')
web.header('Content-Disposition',
'attachment;filename={0}'.format('名称' + '.doc'))
list_docx = [] # 将需要写道doc的内容都放到list_docx列表里面
list_docx.append({'personname':"personname","companyname":"companyname","division":"division"})
datetody = str(datetime.date.today()) # 用来给doc名称动态显示时间
list_docx_x, list_docx_y = divmod(len(list_docx), 35) # 生产doc文档的页数 if list_docx_y != 0:
list_docx_count = list_docx_x + 1
else:
list_docx_count = list_docx_x
list_docx_de = []
page_s = []
for i in range(list_docx_count):
page_s.append(i+1)
for i in range(list_docx_count):
if i == list_docx_count - 1:
li_c = list_docx[(i)*35:]
else:
li_c = list_docx[(i)*35: (i)*35 + 35]
list_docx_de.append(li_c) ret = {"page":list_docx_count,"datetody":datetody, "total": list_docx_de} # 在doc里面对ret进行取值
# 以下都是固定写法
tpl.render(ret)
sio = StringIO.StringIO()
# 将文件保存为string流
tpl.save(sio)
# 将光标移到开头
sio.seek(0)
# 会在浏览器显示下载特效
return sio.getvalue()

模板语法(图片来至网络)

python自动生成Docx(docxtpl库)的更多相关文章

  1. python自动生成excel(xlwt库)

    下面代码使用web.py框架,其他框架都大同小异. # coding: utf- import web import json import datetime import xlwt import S ...

  2. 从用python自动生成.h的头文件集合和类声明集合到用python读写文件

    最近在用python自动生成c++的类.因为这些类会根据需求不同产生不同的类,所以需要用python自动生成.由于会产生大量的类,而且这些类是变化的.所以如果是在某个.h中要用include来加载这些 ...

  3. 利用python自动生成verilog模块例化模板

    一.前言 初入职场,一直忙着熟悉工作,就没什么时间更新博客.今天受“利奇马”的影响,只好宅在家中,写写技术文章.芯片设计规模日益庞大,编写脚本成了芯片开发人员必要的软技能.模块端口动不动就几十上百个, ...

  4. Python自动生成代码工具

    项目中有一个需求,对一个基类而言,拥有一个比较方法和拷贝方法,某些地方需要频繁地对这两个方法进行调用.对于所有子类而言,需要重写这两个方法,并在其中维护类内一些成员变量.例如有一个变量m_iMyVal ...

  5. 使用python自动生成docker nginx反向代理配置

    由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...

  6. python 自动生成C++代码 (代码生成器)

    python 代码自动生成的方法 (代码生成器) 遇到的问题 工作中遇到这么一个事,需要写很多C++的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错:而借用pyth ...

  7. python自动生成bean类

    近期在学习python,一直在和java做对比,目前没有发现有通过字段自动生成getter setter方法,故此自己写了一个类,可以通过__init__方法传入类名和字段数组,再调用内部的方法,就可 ...

  8. python笔记 利用python 自动生成条形码 二维码

    1. ean13标准条形码 from pystrich.ean13 import EAN13Encoder encode = EAN13Encoder(') encode.save('d:/barco ...

  9. python 自动生成model 文件 案例分析

    生成方式 Python中想要自动生成 model文件可以通过 sqlacodegen这个命令来生成对应的model文件 sqlacodegen 你可以通过pip去安装: pip install sql ...

随机推荐

  1. 一个区分度很大的iOS面试题

    @property 后面可以有哪些修饰符?@property中有哪些属性关键字? 属性可以拥有的特质分为四类: 原子性--- nonatomic 特质 在默认情况下,由编译器合成的方法会通过锁定机制确 ...

  2. idea自动下载依赖的源代码等信息

    mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true

  3. 游戏协议模拟测试工具(TcpEngine)使用简介

    功能介绍 在有的网络开发需要走二进制流协议场景,比如网络游戏开发,在开发阶段,前端和后端协商好协议后就分别开发.在开发写代码的时候,有时需要对端发送一条完整的协议过来触发一下自己的代码,进行单步调试或 ...

  4. HDMI/DVI 显示器热插拔与检测原理(HPD)

    HDMI(19Pin)/DVI(16 pin)的功能是热插拔检测(HPD),这个信号将作为主机系统是否对HDMI/DVI是否发送TMDS信号的依据.HPD是从显示器输出送往计算机主机的一个检测信号.热 ...

  5. [转帖]【JVM 知识体系框架总结】

    [JVM 知识体系框架总结] https://www.cnblogs.com/mousycoder/p/11612448.html JVM 内存分布 线程共享数据区:方法区->类信息,静态变量堆 ...

  6. 【转帖】史上最全PostgreSQL体系结构

    史上最全PostgreSQL体系结构 2019年07月16日 18:00:00 Enmotech 阅读数 35   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...

  7. (七)mysql 记录长度

    MySQL记录长度 MySQL中规定:任何一条记录最长不能超过 65535个字节: 这句话,就表明 varchar 永远也达不到理论值 : varchar 的实际存储长度能达到多少,是需要看具体的字符 ...

  8. linux破解navicat for mysql

    第一次执行start_navicat时,会在用户主目录下生成一个名为.navicat64的隐藏文件夹. cd ~/.navicat64 此文件夹下有一个system.reg文件 rm system.r ...

  9. 写CSDN博客

    文章目录 前言 写博客的规范 写博客的小技巧 版权声明模板 博客表格模板 更改博客字体和颜色 LaTeX 数学公式 前言 这是一篇关于写CSDN博客的文章.记录我的博客规范,技巧,模板,心得. 写博客 ...

  10. 1262: 谁不爱打牌(Java)

    WUSTOJ 1262: 谁不爱打牌 转自 断-肠-人的博客 Java代码在文末 Description BobLee最近在复习考研,但是他也喜欢打牌(有谁不爱玩牌呢?).但是作为一名ACMER,斗地 ...