打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Django使用python
1、首先,必须安装docxtpl,使用下面命令,其中会下载对应的相关依赖包:
pip install docxtpl
2、安装成功后,即可开始编码:
(1)、首先呢,要先生成一个模板文件,这个模板文件必须为docx的,如果是doc的话,要先转格式,不然会报以下错误:
docx.opc.exceptions.PackageNotFoundError: Package not found at 'E:\student_project\student\media/user/user_template/test模板.doc'
(2)、新建一个空的docx文档,命名为test模板.docx,里面输入一行内容:{{ text }},放在student项目底下的media/user/user_template目录底下,代码如下:
from student.settings import MEDIA_ROOT
from django.shortcuts import render
from docxtpl import DocxTemplate
def post(self, request):
base_url = MEDIA_ROOT + '/user/user_template/'
asset_url = base_url + 'test模板.docx'
tpl = DocxTemplate(asset_url)
context = {'text': '哈哈哈,来啦'}
tpl.render(context)
tpl.save(base_url + 'test.docx')
return render(request, "user/user_info.html", content)
(3)、之后就会在模板相同的路径底下生成一个test.docx文档,打开即可看到我们代码底下的数据填充进模板了:
3、接下来,来试一下如何新建一个表格,把数据填充进去
(1)、首先修改一下那个test模板.docx,修改后如下:
{{ text }}
序号
{%tc for col in user_labels %}
{{ col }}
{%tc endfor %}
{%tr for item in user_list %}
{{ item.number }}
{%tc for col in item.cols %}
{{ col}}
{%tc endfor %}
{%tr endfor %}
word文档中是这样的表格:
(2)、修改代码如下:
from student.settings import MEDIA_ROOT
from django.shortcuts import render
from docxtpl import DocxTemplate
def post(self, request):
base_url = MEDIA_ROOT + '/user/user_template/'
asset_url = base_url + 'test模板.docx'
tpl = DocxTemplate(asset_url)
context = {'text': '哈哈哈,来啦'}
user_labels = ['姓名', '年龄', '性别', '入学日期']
context['user_labels'] = user_labels
user_dict1 = {'number': 1, 'cols': ['林小熊', '27', '男', '2019-03-28']}
user_dict2 = {'number': 2, 'cols': ['林小花', '27', '女', '2019-03-28']}
user_list = []
user_list.append(user_dict1)
user_list.append(user_dict2)
context['user_list'] = user_list
tpl.render(context)
tpl.save(base_url + 'test.docx')
return render(request, "user/user_info.html", content)
(3)、之后便可以成功将数据填充进表格中,如下图所示:
4、其中模板可以添加进你所需要的内容,之后可以把数据库查询出来的字段,或者表单提交录入的字段填充进模板中,大家可以试一下,其中,注意路径如果出现错误,也会报之前类似的错误,比如我修改上面中的一行代码:
base_url = '/user/user_template/'
就会报错:docx.opc.exceptions.PackageNotFoundError: Package not found at 'user/user_template/test模板.docx'
5、以上内容,仅供学习参考,谢谢!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Django中使用python-docx-template实现文档下载功能
Django 模板进阶
Python读取本地HTML中的canvas以图片形式存入Word文档
Handlebars.js 模板引擎参考文档
php smarty模板实例
前端教程:DjangoAjax应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服