参考各大神的思路,打算读取excel表格中文本,然后使用docxtpl将读取到的文本添加到对应的标签区域中,实现批量生成word文档。
但出现了一个很奇怪的问题,我的标签添加如下:
然后我原代码实现如下:
我的方案里有一个要求就是要读取表格里学生的成绩,根据学生不同的成绩,在特定的标签区域里填写的内容也要不同,就像代码里展现的那样,不同的学生成绩,就有不同的勾选情况,所以对每个人的成绩进行if判定。
原打算是先把每个人的基本信息先填到对应的标签区域,例如像姓名、班级、导师姓名等内容先行填写到标签内,然后条件语句判定后,再把其他的内容填入对应标签,例如勾选框和空白框。
但问题就来了,文档输出后,本该在标签区域填写的内容却显示空白,但勾选框的填写情况确实正常的,如下图:
百思不得其解,网上也没找到好的办法,但最终还是解决了,解决思路如下:
方法就是,不要分开填写标签内容,要填写标签内容就一股气全在一个context={...}里面填写,在我代码里的体现就是把本来分开填写的标签内容,合并到一起填写,每进行一次条件判定,就把文档的标签内容全部填写进去。
最终输出终于正确,见下图: