python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明。

使用python新建一个word文档,操作就像文档里介绍的那样:

from docx import Documentfrom docx.shared import Inchesdocument = Document()document.add_heading('Document Title', 0)  #插入标题p = document.add_paragraph('A plain paragraph having some ')   #插入段落p.add_run('bold').bold = Truep.add_run(' and some ')p.add_run('italic.').italic = Truedocument.add_heading('Heading, level 1', level=1)document.add_paragraph('Intense quote', style='IntenseQuote')document.add_paragraph(    'first item in unordered list', style='ListBullet')document.add_paragraph(    'first item in ordered list', style='ListNumber')document.add_picture('monty-truth.png', width=Inches(1.25)) #插入图片table = document.add_table(rows=1, cols=3) #插入表格hdr_cells = table.rows[0].cellshdr_cells[0].text = 'Qty'hdr_cells[1].text = 'Id'hdr_cells[2].text = 'Desc'for item in recordset:    row_cells = table.add_row().cells    row_cells[0].text = str(item.qty)    row_cells[1].text = str(item.id)    row_cells[2].text = item.descdocument.add_page_break()document.save('demo.docx')  #保存文档

读取和编辑一个已有的word文档,只需在一开始添加上文件路径就行了,如下:

from docx import Documentfrom docx.shared import Inchesdocument = Document('demo.docx')  #打开文件demo.docxfor paragraph in document.paragraphs:    print(paragraph.text)  #打印各段落内容文本document.add_paragraph(    'Add new paragraph', style='ListNumber')    #添加新段落document.save('demo.docx') #保存文档

如果是想读取其中的图片或是更复杂的编辑,首先我们需要先来认识下docx文档的格式组成:

docx是Microsoft Office2007之后版本使用的,用新的基于XML的压缩文件格式取代了其目前专有的默认文件格式,在传统的文件名扩展名后面添加了字母“x”(即“.docx”取代“.doc”、“.xlsx”取代“.xls”、“.pptx”取代“.ppt”)。

docx格式的文件本质上是一个ZIP文件。将一个docx文件的后缀改为ZIP后是可以用解压工具打开或是解压的。事实上,Word2007的基本文件就是ZIP格式的,它可以算作是docx文件的容器。

docx 格式文件的主要内容是保存为XML格式的,但文件并非直接保存于磁盘。它是保存在一个ZIP文件中,然后取扩展名为docx。将.docx 格式的文件后缀改为ZIP后解压, 可以看到解压出来的文件夹中有word这样一个文件夹,它包含了Word文档的大部分内容。而其中的document.xml文件则包含了文档的主要文本内容。

word目录下:

document.xml文件内容:

media目录下存放word文档中插入的图片:

所以,我们可以使用手工的方法编辑文件document.xml来对该word文档内容进行编辑,或是提取文档media中图片文件的方式来提取该word文档中所插入的所有图片。

1 import zipfile2 3 f=zipfile.ZipFile('demo.docx','r') 4 5 for filename in f.namelist():6     f.extract(filename)

文末好书推荐

《Python编程快速上手——让繁琐工作自动化》

本书是一本面向实践的Python编程实用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的首部分介绍了基本Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序,供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。附录部分提供了所有习题的解答。

本书适合任何想要通过Python学习编程的读者,尤其适合缺乏编程基础的初学者。通过阅读本书,读者将能利用强大的编程语言和工具,并且会体会到Python编程的快乐。

文章分享希望对大家有所帮助,喜欢的评论加关注,回复学习即可免费分享给大家文章中的福利!

docx文档怎么排列图片_“胶水语言”办公自动化Word篇——使用Python编辑和读取Word文档相关推荐

  1. python怎么读取word文件_使用python编辑和读取word文档

    python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样: 1 from docx importDo ...

  2. 用python编辑word_使用PYTHON编辑和读取WORD文档

    python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样: 1 from docx import D ...

  3. docx文档怎么排列图片_格式转换太麻烦?仅需一行命令,搞定图片、音频、视频、文本批量转换!...

    每天12:18准时给大家惊喜! 大家好!我是好奇仔,热衷于搜罗和分享各种好用.实用的软件神器和资源,有手机软件.办公软件.APP,还有网站资源-- 来自:芒种学院(ID:lazy_info)  作者: ...

  4. python docx 合并文档 图片_不再为处理PDF烦恼,python处理操作PDF全攻略

    本篇聊下Python对pdf的各种操作,包含pdf转word,pdf转图片,pdf翻转,加密,加水印等. pdf转换word文档 保留格式 pdf转换为word文档,被大众经常使用的是纯Python库 ...

  5. docx文档怎么排列图片_PDF怎么转Word?这几款软件满足你的要求

    不知道大家有没有遇到这样一种情况,在办公室中本来就已经完成好自己手头的工作,突然老板给你很多份PDF文件,让你把这些PDF文件转换为Word. 这个时候,除了想办法解决这个问题之外,没有别的办法了.你 ...

  6. docx文档怎么排列图片_Python-docx 对 word 文本处理实现自动化操作!

    之前介绍了一个Python包 openpyxl ,用于处理 Excel :而对于 Word 文本时同样也有对应的 Python库 Python-docx,在日常办公中,如果需要处理多个 word 文本 ...

  7. docx文档怎么排列图片_PDF文档中的图片怎么提取出来?不得不说这两个方法太好用了...

    原标题:PDF文档中的图片怎么提取出来?不得不说这两个方法太好用了 目前PDF文档被大家广泛应用,主要是因为PDF文档在传输和转换的过程中比较稳定,所以PDF格式几乎是办公文件格式的首选.大家都知道P ...

  8. python怎么读取word文件_python之python-docx编辑和读取word文档

    python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样:1 from docx import Do ...

  9. python之python-docx编辑和读取word文档

    python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. python-docx官方文档地址 使用python新建一个word文档,操作就像文档里介绍的那样: 1 ...

最新文章

  1. 【数组方法大合集】原生js数组array常用工具方法大合集
  2. ring0下的 fs:[124]
  3. python语言中,对于cursor的查询明明有结果,为什么print cursor.rowcount结果为-1?
  4. 全选checkbox只能执行一次的问题
  5. hive命令出现问题Failed with exception Java.io.IOException:java.lang.IllegalArgumentException: java.NET.URI
  6. 句句真研—每日长难句打卡Day15
  7. [转]jQuery ListBox Plugin(ListBox插件)
  8. Flex 布局学习笔记
  9. 6.企业应用架构模式 --- 会话状态
  10. 企业中常见的杀毒软件
  11. 网络上行 下行速度测试软件,测试网络流畅度和上下行的方法
  12. 当我们谈论跳槽时在谈论什么
  13. C语言:计算三角形面积与周长
  14. 微信企业号上传图片 php,C#开发微信门户及应用微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)...
  15. PostgreSQL 12 中文文档
  16. kafka(三):kafka broker
  17. multisim仿真 74LS148D芯片
  18. HTML里的a链接download 属性浏览器js点击下载图片
  19. J9数字论:什么是 DAO?DAO 的起源是什么
  20. mysql用命令修改主键名_MySQL的常用命令:添加外键,修改字段名称,增加字段 设置主键自增长等 落楝花...

热门文章

  1. 带你掌握Vue过滤器filters及时间戳转换
  2. 我是一个请求,我该何去何从
  3. 【华为云技术分享】一文带你了解Web前端发展历程
  4. 【华为云技术分享】为什么越来越多企业正在往ARM平台迁移?
  5. 【华为云技术分享】Python 中的异常和错误
  6. HTML5唐诗三百首,《唐诗三百首》中王维5首五言绝句,代表了盛唐绝句的最高成就!...
  7. leetcode-深度优先搜索
  8. m1芯片Mac安装Apple版TensorFlow(conda-forge)+编译安装sklearn
  9. python购物车结算_python购物车-基础版本
  10. 【mysql基础知识】解决java连接mysql时将localhost改为本机的ip地址后失败问题