当前位置: 首页 > news >正文

如何建设一个国际化的网站泰安市平台公司

如何建设一个国际化的网站,泰安市平台公司,简单的网站设计图,响应式网站视频python使用docxtpl生成word模板 python-docxtpl包简单使用和实战,Python处理word,docx文件。 最近需要处理一些爬虫得到的数据来进行一些自动化报告的操作,因为需要生成的是word的报告,所以估选用docxtpl库来直接生成模板 docxt…

python使用docxtpl生成word模板

python-docxtpl包简单使用和实战,Python处理word,docx文件。
最近需要处理一些爬虫得到的数据来进行一些自动化报告的操作,因为需要生成的是word的报告,所以估选用docxtpl库来直接生成模板

docxtpl 模板标签主要来自jinja2,可以了解 jinja2语法,也有些额外的不一样,可以自行百度或者参考官方文档

开始

使用Pip安装docxtpl

pip install docxtpl
简单demo
根据官网的简单举例:

from docxtpl import DocxTemplate
doc = DocxTemplate(“my_word_template.docx”) # 读取模板
context = { ‘company_name’ : “World company” } # 需要传入的字典, 需要在word对应的位置输入 {{ company_name }}
doc.render(context) # 渲染到模板中
doc.save(“generated_doc.docx”) # 生成一个新的模板
至此,就可以直接拿来实战了, 实战中包含了图片的替换和表格文本的一些插入。都是很简单的,就是将组成的字典渲染到word中去就可以

实战

#!/usr/bin/env python

-- encoding: utf-8 --

‘’’
@File : generate_word.py
@Time : 2021/05/28 15:52:57
@Author : OD
@Version : 1.0
‘’’

here put the import lib

from docx import Document
from docx.shared import Pt
import datetime
from docxtpl import DocxTemplate, RichText, InlineImage
from docx.shared import Mm
import json

根据模板生成一个周报内容

class Generate2Word:
def init(self):
self.now = str(datetime.date.today() - datetime.timedelta(days=0)).replace(“-”, “”).replace(" “, “”)
self.last = str(datetime.date.today() - datetime.timedelta(days=7)).replace(”-“, “”).replace(” “, “”)
self.now = self.now[4:6] + ‘.’ + self.now[6:] # 现在时间
self.last = self.last[4:6] + ‘.’ + self.last[6:] # 7天前时间
def generate_report(self, tpl_file, report_file):
tpl= DocxTemplate(tpl_file)
# 第一个图表
context = {
‘start_time’ : self.last,
‘end_time’ : self.now,
‘total_attention’: 123,
‘add_attention’: 20,
‘dau’: 100,
‘dau_per’:20 / 100,
‘theme_tiezi’:1234,
‘all_tiezi’: 12345,
‘add_theme_tiezi’: 25,
‘add_tiezi’: 20,
‘official_pub’:12,
‘del_tiezi’: 5,
}
image1_path = r’1.png’ # 要生成的图片地址
image2_path = r’2.png’ # 要生成的图片地址
insert_image1 = InlineImage(tpl, image1_path, width=Mm(140))
insert_image2 = InlineImage(tpl, image2_path, width=Mm(140))
# 作为图片的替换
img_context = {
‘img1’: insert_image1,
‘img2’: insert_image2
}
# 管理帖子,需要渲染
bawu_lists = {
“bawu_table”:
[{
‘publish_time’: ‘2021/5/7’,
‘title’: ‘测试1’,
‘link’: 'https://www.baidu,com,
‘reply_num’: 27
},
{
‘publish_time’: ‘2021/5/8’,
‘title’: ‘测试2’,
‘link’: ‘https://www.baidu,com’,
‘reply_num’: 4
},
{
‘publish_time’: ‘2021/5/31’,
‘title’: ‘湖人浓眉伤退’,
‘link’: ‘https://www.baidu,com’,
‘reply_num’: 40
},
{
‘publish_time’: ‘2021/6/2’,
‘title’: ‘勒布朗詹姆斯率队拿下g5’,
‘link’: ‘https://www.baidu,com’,
‘reply_num’: 444
}
],
“navy_table”:
[{
‘publish_time’: ‘2021/4/23’,
‘title’: ‘测试3’,
‘link’: ‘https://www.baidu,com’,
‘reply_num’: 444
},
{
‘publish_time’: ‘2021/4/30’,
‘title’: ‘测试4’,
‘link’: ‘https://www.baidu,com’,
‘reply_num’: 444
},
{
‘publish_time’: ‘2021/5/30’,
‘title’: ‘测试5’,
‘link’: ‘https://www.baidu,com’,
‘reply_num’: 444
}
]
}
bawu_summary = dict()
bawu_sum_reply = 0 # 总有多少个回复
for bawu_data in bawu_lists.get(‘bawu_table’):
bawu_summary[‘bawu_publish_num’] = len(bawu_lists.get(‘bawu_table’, 0))
bawu_sum_reply += int(bawu_data.get(‘reply_num’, 0))
bawu_summary[‘bawu_sum_reply’] = bawu_sum_reply
navy_summary = dict()
navy_sum_reply = 0
for navy_data in bawu_lists.get(‘navy_table’):
navy_summary[‘navy_publish_num’] = len(bawu_lists.get(‘navy_table’, 0))
navy_sum_reply += int(navy_data.get(‘reply_num’, 0))
navy_summary[‘navy_sum_reply’] = navy_sum_reply
tpl.render({**context, **img_context, ** bawu_lists, **bawu_summary, **navy_summary}) # 多个字典解构
print(‘生成模板成功…’)
tpl.save(report_file)
def main(self):
tpl_file = “文件模板.docx” # 指定的模板
report_file = f"新得{self.last}-{self.now}报告.docx” # 指定生成的报告位置
self.generate_report(tpl_file, report_file)
if name == ‘main’:
demo = Generate2Word()
demo.main()
这样 就可以生成一个保留 word 格式的一个报告。

http://www.yayakq.cn/news/733063/

相关文章:

  • 作文网站高中mysql做网站怎么查看数据
  • 校园网站的作用wordpress iis伪静态规则
  • 网站系统升级seo诊断工具
  • 网站权重做任务领佣金的网站
  • 哪里有做配音的兼职网站苏州网页设计方法
  • wap蓝天建站企业建网站选中企动力
  • logo和网站主色调网站报价表
  • 专业做网站开发的公司wordpress主题不显示图片
  • 网站用什么做关键词二七网站建设
  • 济南网站建设 荐搜点网络网站名词
  • 新网站做百度推广 收录正规网络教育培训机构
  • 网站营销单页面留言武夷山住房和城乡建设局网站
  • 个人网站制作总体设计免费拓客软件
  • 门户网站是指提供什么的网站seo是什么意思紧要
  • 宁波网站建设熊掌号网站广告推广怎么做的
  • 低价网站建设推广报价合肥做网站的
  • 保定网页模板建站商店设计效果图
  • 网站建设主要推广方式网页字体网站
  • 潍坊 企业网站建设织梦网站怎么更换模板
  • 政务公开网站项目建设书wordpress后台不提醒更新
  • 建设网站什么软件好响应式布局网站尺寸
  • 电子商务网站的建设和维护网站建设吴中区
  • 德州做网站建设的公司wordpress使用个人写的页面
  • 什么是企业营销型网站?陕西省建设厅网站怎么查焊工证
  • 如何用vs2010做网站洛龙区网站制作建设费用
  • 企业网站建设的目的有()深圳优化seo排名
  • 定制的网站源码网站建设 拖欠尾款
  • 速成网站怎么做普通网站逻辑设计数据流图
  • 建筑服务类网站做网站沈阳
  • 商店网站源码制作英文