![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python批量生成丰富格式word
python docx与docxtpl包联合使用操作word文档,为文字、段落、章节、表格自定义格式等;多种方法设置自动更新域(python,java); linux环境下word与pdf格式转换(仅java包就可满足,格式完美);增删水印;大量的实战例子。整理了系列文章,尽可能满足你的所有需求。
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
晏九
这个作者很懒,什么都没留下…
展开
-
【基础】python-docx模板语言
以下只列出模板语言(即在word中应该怎么写),怎么用请看系列其他博客。1. 这种方式,可以是文字,也可以是图片,word是什么格式,替换填充到这里的也会是什么格式name跟变量一样,不可以是数字开头的,比如 “2name”{{name}}例如:2. richtext: 这种需要程序指定格式{{r name}}3. p可以是段落,也可以是表格{{p mysubdoc}}4. if (%后面的p是为了去掉if所占的行,不至于替换模板之后变...原创 2021-11-03 16:53:38 · 851 阅读 · 2 评论 -
aspose-words更新域/目录(页码不准确问题)
doc.updateFields();在使用上面这个方法更新word的目录或者生成pdf的时候会发现一些问题。问题1. word目录页码标错2. 页码跳转问题说明及解决问题1:aspose-words 对word进行更新域时,word的目录跟java保持一致,有时候会发现跟word自己的页码标的不一样,而pdf目录跟页码一致。word转pdf后,两者的页码不一致,这个原因可能是由于aspose-words的环境中没有word的字体,转换的时候用了pdf默认的字体,这样两..原创 2021-10-18 14:14:09 · 4550 阅读 · 5 评论 -
【实战】python-docx---表格固定显示几列
概述比如有1*20的dataframe,要填充到表格里,要求表格每行只允许有5列,该怎么填充,而且列标也需要放入表格中模板如果对表格的格式需要进行一些设置,比如颜色,字体,可以在word中新建style举例:代码import reimport osfrom docx.enum.section import WD_ORIENTfrom docxtpl import DocxTemplatefrom docx import Documentimport mathim原创 2020-12-14 18:02:16 · 728 阅读 · 4 评论 -
python批量生成丰富格式word-总目录
1. 基础2. 踩坑原创 2020-12-02 10:55:45 · 1850 阅读 · 2 评论 -
【踩坑】python-docx设置表格宽度不起作用
问题:在用以下代码设置表格宽度的时候发现怎么设都不起作用可能会合并一些行,列的宽度是固定的,但是does not workfrom docx.shared import Cm, Mm, Inchesfrom docxtpl import DocxTemplate, InlineImage, RichTextdoc = DocxTemplate(template_dir)sd = doc.new_subdoc()rows=2colnames=["A","B","C"]colwid原创 2020-11-06 17:53:43 · 4376 阅读 · 0 评论 -
【踩坑】生成word之后无法打开
问题最近在生成报告的时候发现有一个问题,生成word之后打开,会提示这个错误。但是点击确定之后,会再次出现弹框再点击是,会打开word,然后惊讶的发现word内容是没有受损的,这种情况就意味着程序没有问题,是由于某个特殊的东西导致这样的问题,经过我的一些排查,终于发现若是在模板里使用循环,然后循环里有特殊字符,会导致这样的错误。这样的字符包括但可能不限于去掉这个字符就可以正常打开报告了。...原创 2020-11-05 17:23:20 · 908 阅读 · 1 评论 -
【实战】python-docx---每页表格固定显示行数
例如100行数据填入word,每页固定展示5行,需要20页原创 2020-08-06 19:26:36 · 1202 阅读 · 0 评论 -
【基础】python-docx----section章节设置
概述这里引入一个概念section,即为节,章节,章节的范围比段落paragraph要大。这部分的设置对应于word中的页面布局,如下图可以设置页眉的纸张方向,页面边距,页面大小,每个节可以设置单独的页眉页脚,也可以设置其页面布局,比如横向纵向。纸张方向from docx import Documentfrom docx.enum.section import WD_ORIENTdoc = Document('xxx.docx')sections = doc.secti.原创 2020-08-06 15:48:42 · 4787 阅读 · 0 评论 -
【实战】如何获取word总页码
获取word总页码原创 2020-08-03 11:16:25 · 2587 阅读 · 3 评论 -
【实战】python-docx 循环生成多个表格
概述之前有多篇博客介绍如何新建,合并拆分表格,这里主要介绍如果要插入多个表格模板在word里新建表格样式Style1,样式设置随你高兴程序import reimport osfrom docxtpl import DocxTemplatetpl = DocxTemplate('merge.docx')sd = tpl.new_subdoc()sd.add_paragraph('Drug Table :')rows=2cols=4table = s..原创 2020-07-21 11:26:33 · 4591 阅读 · 3 评论 -
【基础】制作word模板
概述我发现word文档说简单也简单,说复杂也挺复杂,有些人写了很多文档,可能也只是用到了word里极少的一部分功能,因为之前有人会把一个word模板交给我去代码实现,他觉得自己做的word非常完美,但是我实际去看的时候,仍然需要重新制作,我在本篇博客会仔细介绍我了解的一些功能,希望能帮助大家更快地制作模板,对一些经常使用word的人来说也是一个小帮助,如果我总结的不到位,请大家批评指正。需求1. 页码2. 正文和标题3. 目录...原创 2020-06-09 19:13:37 · 2100 阅读 · 0 评论 -
【基础】python-docxtpl包之-----图片
概述之前有人询问我往word里插入图片,这个虽然不难,不过很多人刚开始应该想不到,我整理了一些场景,供大家参考。python docxtpl包是需要word和代码联动的,所以我会将这两部分都贴出来。需求1. 循环插入图片2. 宽高自适应3. 图片居中(word标签居中即可)实现一:循环插入图片模板:代码:from docxtpl import DocxTemplate,InlineImage,RichTexttpl = DocxTemplate..原创 2020-06-05 17:05:24 · 6538 阅读 · 8 评论 -
【踩坑】aspose-words转换word至pdf表格变窄
问题:在对aspose-words for java的使用中发现了一个问题我使用的版本是19.1和19.10个别表格转成PDF之后会变窄,但是在windows下用office转是没有问题的。这个表格是用python docx生成的,也设置了列宽,但是转PDF之后,列宽设置失效。生成的word随便修改点什么,再次转换就成功。询问作者之后,这个确实是个BUG,之后若是解决,我会再次补上解决办法。...原创 2020-06-04 10:51:56 · 5508 阅读 · 5 评论 -
【踩坑】word---插入图片时只显示图片的一部分
在动态往word插入图片时发现,总是只显示图片的一小部分,如下所示:检查文字环绕---嵌入型,这个没有问题,最后发现是一个很奇葩的问题检查下插入word的jinjia2标签的段落行间距是固定值,导致出现这个问题,只要改成单倍行距即可解决...原创 2020-05-28 10:51:33 · 2362 阅读 · 0 评论 -
【踩坑】python-docxtpl-----报错ZeroDivisionError: float division by zero或者无法打开word
一般这种报错主要原因有2种,一种是内容出错,可以将渲染模板的打印出来,检查一下是否结构不对,另外一种就是模板jinja2标签插入错误,如下所示:tree = self.fix_tables(xml_src) File "/usr/local/lib/python3.6/site-packages/docxtpl/__init__.py", line 358, in fix_tables extra_space = removed_width / len(columns_left)Zero...原创 2020-05-28 11:26:06 · 1685 阅读 · 0 评论 -
【实战】python-docx------实战表格(垂直合并)
简介之前介绍的都是一些理论,可能一些不做开发的朋友们会觉得头很大,这个博客希望可以减少你们学习的时间,快速上手。我会将渲染模板,和准备数据两部分拆开,朋友们只需将数据用特定形式输出,就可以实现一些复杂的功能。需求给定数据,动态垂直合并表格,而且希望第二列在第一列的基础上合并,如下所示:合并 名称1 名称2 名称3渲染模板的代码:这部分代码可以不做修改,需要在word模板中新建表格样式”outertable“,格式自己设置WordRender2.pyfrom d...原创 2020-05-13 16:23:08 · 3225 阅读 · 3 评论 -
【基础】python-docx包之-----表格的基本设置
简介python-docx--设置表格进阶在上面的博客中,主要介绍了如何合并、拆分表格等,中间用到了一些表格的基本设置,比如,指定表格样式,内容居中等,在这篇博客中,详细介绍这一部分需求1. 表格样式修改2. 列宽高设置3. 属性设置(居中)4. 给每个单元格赋值模板设置只需要在word中插入以下标签{{p mysubdoc}}实现一:表格样式修改1. 代码from docxtpl import DocxTemplatefrom docxtpl i原创 2020-05-12 18:39:31 · 4439 阅读 · 24 评论 -
【基础】python-docx包之----设置段落样式(缩进/对齐/间距)
需求:之前学会了简单的设置行的样式,现在有些更高要求,需要对段落设置样式,这里就用到了docx包1. 缩进(首行缩进,左/右缩进)2. 对齐3. 间距实现一:缩进缩进包括:首行缩进(first_line_indent),左/右缩进(left_indent/right_indent)缩进的时候需要设置单位,Pt Cm Inchesfrom docx.share...原创 2020-05-07 17:21:07 · 13108 阅读 · 1 评论 -
【踩坑】Linux下word转pdf中文显示错误
本文内容:1. 在linux下解决中文显示错误2. 在docker内解决中文显示错误1. linux下将windows下C:\Windows\Fonts下的字体打包压缩上传到linux下:unzipwin.zipmvwin/usr/share/fontscd/usr/share/fonts/chmod -Rf 755 win///加载字体...原创 2019-07-19 17:57:58 · 1284 阅读 · 0 评论 -
【工具】Linux--word转PDF工具大全
概述Linux下将word转换为PDF较为费劲,一方面是格式是否正确,另一方面是时间问题,下面简单列出几个工具,比较说明它们的用法和局限性。1. openoffice+unoconv2. docx-to-pdf-converter3. xdocreport4. aspose-wordsopenoffice+unoconv1. 安装参考https://www...原创 2020-05-08 13:37:42 · 6454 阅读 · 14 评论 -
【工具】windows--word转PDF
参考项目C#的库,可以生成word,以及丰富的转换格式https://www.e-iceblue.cn/spiredoc/word-conversion-feature.html在此主要调用office本身的控件,来转换https://github.com/Softcom/docx2pdfwindows下转换word格式较为简单,实际上就是调用office打开word,并转换...原创 2019-07-18 09:51:31 · 460 阅读 · 0 评论 -
【基础】aspose.words-for-java增删水印
aspose-words安装部署自动更新目录参考网站:aspose-words github:https://github.com/aspose-words/Aspose.Words-for-Java/tree/master/Examples/src/main/java/com/aspose/words/examples/programming_documents/images查...原创 2019-12-03 18:29:04 · 1122 阅读 · 0 评论 -
【基础】java操作word,自动更新目录/域
python操作word自动更新目录aspose-words安装部署增删水印使用aspose-words,自动更新目录Document doc = new Document(inPath); // inPath是将要被转化的word文档doc.updateFields();doc.save(inPath);与python操作word自动更新目录不同的是,python操作w...原创 2019-07-19 18:06:27 · 7371 阅读 · 6 评论 -
【基础】代码操作Word时,自动更新目录(一)
系列文python-docx-template包之----为文字自定义格式(一)python-docx-template包之----设置表格(二)python-docx-template包之----疑难杂症(三)代码操作Word时,自动更新目录(一)python操作Word时,自动更新目录(二)python-docx--设置表格进阶项目需求: 根据数据库...原创 2018-08-07 10:35:56 · 13443 阅读 · 7 评论 -
【基础】python-docx---设置表格
系列文python-docx-template包之----为文字自定义格式(一)python-docx-template包之----设置表格(二)python-docx-template包之----疑难杂症(三)代码操作Word时,自动更新目录(一)python操作Word时,自动更新目录(二)概述:如果只依靠jinja2模板以及python-docx-template...原创 2019-04-29 14:48:56 · 21925 阅读 · 22 评论 -
【基础】python操作Word时,自动更新目录(二)
系列文python-docx-template包之----为文字自定义格式(一)python-docx-template包之----设置表格(二)python-docx-template包之----疑难杂症(三)代码操作Word时,自动更新目录(一)python操作Word时,自动更新目录(二)python-docx--设置表格进阶概述我之前写过一个博客,主要是手动...原创 2018-11-29 16:51:57 · 12593 阅读 · 25 评论 -
【基础】python-docx-template包之----疑难杂症(三)/去除标签占据空白行
系列文python-docx-template包之----为文字自定义格式(一)python-docx-template包之----设置表格(二)python-docx-template包之----疑难杂症(三)代码操作Word时,自动更新目录(一)python操作Word时,自动更新目录(二)python-docx--设置表格进阶概述除了对表格以及文字的处理外,在...原创 2018-10-11 15:31:06 · 8683 阅读 · 6 评论 -
【基础】python-docx-template包之----设置表格(二)
系列文python-docx-template包之----为文字自定义格式(一)python-docx-template包之----设置表格(二)python-docx-template包之----疑难杂症(三)代码操作Word时,自动更新目录(一)python操作Word时,自动更新目录(二)python-docx--设置表格进阶概述使用python-docx-t...原创 2018-08-09 14:55:06 · 22334 阅读 · 65 评论 -
【基础】python-docx-template包之----为文字自定义样式(一)
目录官方文档:安装概述方法一:新建样式方法二:程序指定注意事项:官方文档https://docxtpl.readthedocs.io/en/latest/系列文python-docx-template包之----为文字自定义格式(一)python-docx-template包之----设置表格(二)python-docx-template包之-...原创 2018-08-08 13:01:47 · 27044 阅读 · 9 评论