修改word文档格式,包括修改目录字体字号间距,修改一级标题字体字号间距,二级标题字体字号间距。。。。正文字体字号间距,表格中的文字的字体字号间距,以图或表开头的图名称和表名称的字体字号间距.

word中包含封面的话输入1就不遍历第一个表格,不修改封面字体,没封面就遍历所有的表格,修改所有表格的字体

修改论文格式还是比较好用的,尤其是图片和表格比较多的文档

from docx import Document
from docx.shared import Inches
import  os,re
from docx.shared import Pt,RGBColor
from docx.oxml.ns import qn
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Inches
from docx.shared import Pt, Cm, Inchesdef zhengwen():for paragraph in document.paragraphs:if re.match('^Heading 1',paragraph.style.name):paragraph.paragraph_format.line_spacing = 1.5paragraph.paragraph_format.space_before = Pt(5)paragraph.paragraph_format.space_after = Pt(5)paragraph.paragraph_format.first_line_indent = Cm(0)paragraph.paragraph_format.left_indent = Cm(0)for run in paragraph.runs:run.font.size = Pt(16)run.font.name = u'黑体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')run.font.bold = Trueelif re.match('^Heading 2',paragraph.style.name):paragraph.paragraph_format.line_spacing = 1.5paragraph.paragraph_format.space_before = Pt(5)paragraph.paragraph_format.space_after = Pt(5)paragraph.paragraph_format.first_line_indent = Cm(0)paragraph.paragraph_format.left_indent = Cm(0)for run in paragraph.runs:run.font.size = Pt(14)run.font.name = u'黑体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')run.font.bold = Trueelif re.match('^Heading 3',paragraph.style.name):paragraph.paragraph_format.line_spacing = 1.5paragraph.paragraph_format.space_before = Pt(5)paragraph.paragraph_format.space_after = Pt(5)paragraph.paragraph_format.first_line_indent = Cm(0)paragraph.paragraph_format.left_indent = Cm(0)for run in paragraph.runs:run.font.size = Pt(12)run.font.name = u'黑体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')run.font.bold = Trueelif re.match('^Heading 4',paragraph.style.name):paragraph.paragraph_format.line_spacing = 1.5paragraph.paragraph_format.space_before = Pt(5)paragraph.paragraph_format.space_after = Pt(5)paragraph.paragraph_format.first_line_indent = Cm(0)paragraph.paragraph_format.left_indent = Cm(0)for run in paragraph.runs:run.font.size = Pt(12)run.font.name = u'黑体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')run.font.bold = Trueelif re.match('^Heading 5',paragraph.style.name):paragraph.paragraph_format.line_spacing = 1.5paragraph.paragraph_format.space_before = Pt(5)paragraph.paragraph_format.space_after = Pt(5)paragraph.paragraph_format.first_line_indent = Cm(0)paragraph.paragraph_format.left_indent = Cm(0)for run in paragraph.runs:run.font.size = Pt(12)run.font.name = u'黑体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')run.font.bold = Trueelif re.match('^Heading 6',paragraph.style.name):paragraph.paragraph_format.line_spacing = 1.5paragraph.paragraph_format.space_before = Pt(5)paragraph.paragraph_format.space_after = Pt(5)paragraph.paragraph_format.first_line_indent = Cm(0)paragraph.paragraph_format.left_indent = Cm(0)for run in paragraph.runs:run.font.size = Pt(12)run.font.name = u'黑体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')run.font.bold = Trueelif re.match('^Heading 7',paragraph.style.name):paragraph.paragraph_format.line_spacing = 1.5paragraph.paragraph_format.space_before = Pt(5)paragraph.paragraph_format.space_after = Pt(5)paragraph.paragraph_format.first_line_indent = Cm(0)paragraph.paragraph_format.left_indent = Cm(0)for run in paragraph.runs:run.font.size = Pt(12)run.font.name = u'黑体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')run.font.bold = True#目录elif re.match('^toc',paragraph.style.name):for run in paragraph.runs:run.font.size = Pt(10.5)run.font.name = u'宋体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')run.font.italic = Falserun.font.bold = False#图 表else:if re.match("(表)",paragraph.text):print(paragraph.text)paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTERfor run in paragraph.runs:run.font.size = Pt(9)run.font.name = u'黑体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')elif re.match("(图)",paragraph.text):print(paragraph.text)paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTERfor run in paragraph.runs:run.font.size = Pt(9)run.font.name = u'黑体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
#正文else:paragraph.paragraph_format.line_spacing = 1.5for run in paragraph.runs:run.font.size = Pt(10.5)run.font.name = u'宋体'run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')run.font.italic = Falserun.font.bold = Falsedef biaoge(a):tables=document.tablesb=int(a)for tb in document.tables[b:]:for row in tb.rows:            for cell in row.cells:for par in cell.paragraphs:for run in par.runs:                    run.font.size = Pt(9)run.font.name ='宋体'  run._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')if __name__ == "__main__":print("输入文件路径")path = input()print("有封面输入1没封面输入0")a = input()#'C:\\Users\lilyh\\Desktop\\文件.docx'document = Document(path)zhengwen()biaoge(a)document.save('修改后的文件.docx')print("输入任意结束")d = input()

python docx修改word文档格式相关推荐

  1. Python动态修改Word文档内容,保留格式样式,并批量生成PDF

    Python动态修改Word文档内容,保留格式样式,并批量生成PDF 前言 一.需要安装的库 二.核心逻辑-替换 前言 假如你有一个Word模版文档,要在里面填写人员信息,但人员有成百上千个,手动填起 ...

  2. python批量修改word文档内容

    实现的目标 批量修改word文档内容,此脚本直接修改文件,不是另存为,建议先copy再修改.多级目录结构对脚本没有影响,脚本会遍历"path"下所有目录以docx结尾文档. 用到的 ...

  3. Python读取\修改word文档中的文本框内容

    本文所指的 word文档,都是docx结尾的,如果是doc结尾的,请参考上篇:点我 我们绝大多数的需求都是 利用python-docx 来读取word文档中的内容,进而再对内容进行其他处理,如下代码, ...

  4. Python批量修改Word文档中特定关键字的颜色

    关于Word文件的大致结构请参考使用Python写入docx文件并控制字体颜色 代码功能:读取docx文档中的文字,在尽量不影响原来字体样式的情况下,只把特定的文字都修改为红色. 表格中的文字请参考P ...

  5. python-docx库实战修改word文档格式

    前情提要 单位要写交流报告,上交材料要公文格式,但是打印出来要打印在A5纸张上,为了快速将公文格式转为可打印在A5纸张上的格式,使用python-docx库实现. 项目目标 通过项目,可批量实现以下功 ...

  6. python 合并word文件_使用python docx合并word文档

    合并包含所有样式的两个文档的另一种方法是使用python库docxcompose(https://pypi.org/project/docxcompose/).我们不需要明确定义样式,也不必逐段阅读文 ...

  7. python docx处理word文档中表格合并问题

    问题描述 python中用docx库读取word文件,若word文件中包含合并的表格表格 则通过docx读取显示: file = docx.Document(path) for table in fi ...

  8. java填充wordxml格式,java xml转成word文档格式

    xml格式如何转换成doc格式文件 通过jodconveter来实现转化(http://www.artofsolving.com/opensource/jodconverter). 这种方式实现起来比 ...

  9. Python3-word文档操作(五):利用python修改word文档中的表格数据

    1. 简介: 本篇继续学习python操作word文档的相关知识.本篇主要学习: 1)如何获取一个已经存在文档中的表格的内容: 2)如何修改一个已经存在文档中的表格的内容: 2. 获取word文档中的 ...

最新文章

  1. crontab修改默认编辑器
  2. 强化学习(四)—— Actor-Critic
  3. hadoop学习2 记录配置hadoop环境的那些坑
  4. 树莓派与安卓手机app的WIFI通信(局域网通信)
  5. Dubbo-go v3.0 正式发布 ——打造国内一流开源 Go 服务框架
  6. 自定义一个月份选择器插件
  7. 软考的一些心得分享, 写在信息系统项目管理师通过之后
  8. html span离div块有边距,html块 div span
  9. UVA434 Matty‘s Blocks【贪心】
  10. SQL2005安装及链接
  11. 叠箱子问题 之 动态规划
  12. Eclipse解压后打开报错javaw.exe in your current PATH
  13. 如何在Pidgin中为您的域帐户设置Google Talk
  14. 华为hg8240光猫通过LAN网络接入实现路由器功能设置
  15. 阿里云安全中心之漏洞修复最佳实践
  16. 每日英语:China's Red Cross Tries to Rebuild After Self-Inflicted Disaster
  17. vue解决打开新窗口被拦截的的实战方法
  18. 谈谈对品牌机和组装机的看法
  19. 【千律】C++基础:删除只读属性文件、文件剪切、修改文件扩展名
  20. 计算机硬件倒计时牌,自制数码管中考倒计时牌

热门文章

  1. mgo.v2无法连接MongoDB 5.0.x
  2. pandas读取Excel判断指定列是否有空值
  3. 在python中输入圆的半_极客起源 - geekori.com - 问题详情 - python动态圆更新糅合到地图显示里...
  4. linux的input命令,认识linux input子系统(一)
  5. 秋从饶合似陶家,遍绕篱边日渐斜。不是花中偏爱菊,此花开尽更无花
  6. 前端基础学习html部分小结
  7. 为什么国产操作系统要基于linux,解说国产Linux操作系统为什么都模仿Windows桌面...
  8. c语言程序总是停止运行,为什么程序老是停止工作
  9. ADB模拟点击、滑动事件
  10. python中sqrt(4)*sqrt(9)_Python表达式sqrt(4)*sqrt(9)的值为()