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

python-docx官方文档地址

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

 1 from docx import Document2 from docx.shared import Inches3 4 document = Document()5 6 document.add_heading('Document Title', 0)  #插入标题7 8 p = document.add_paragraph('A plain paragraph having some ')   #插入段落9 p.add_run('bold').bold = True
10 p.add_run(' and some ')
11 p.add_run('italic.').italic = True
12
13 document.add_heading('Heading, level 1', level=1)
14 document.add_paragraph('Intense quote', style='IntenseQuote')
15
16 document.add_paragraph(
17     'first item in unordered list', style='ListBullet'
18 )
19 document.add_paragraph(
20     'first item in ordered list', style='ListNumber'
21 )
22
23 document.add_picture('monty-truth.png', width=Inches(1.25)) #插入图片
24
25 table = document.add_table(rows=1, cols=3) #插入表格
26 hdr_cells = table.rows[0].cells
27 hdr_cells[0].text = 'Qty'
28 hdr_cells[1].text = 'Id'
29 hdr_cells[2].text = 'Desc'
30 for item in recordset:
31     row_cells = table.add_row().cells
32     row_cells[0].text = str(item.qty)
33     row_cells[1].text = str(item.id)
34     row_cells[2].text = item.desc
35
36 document.add_page_break()
37
38 document.save('demo.docx')  #保存文档

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

 1 from docx import Document2 from docx.shared import Inches3 4 document = Document('demo.docx')  #打开文件demo.docx5 for paragraph in document.paragraphs:6     print(paragraph.text)  #打印各段落内容文本7 8 document.add_paragraph(9     'Add new paragraph', style='ListNumber'
10 )    #添加新段落
11
12 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 zipfile
2
3 f=zipfile.ZipFile('demo.docx','r')
4
5 for filename in f.namelist():
6     f.extract(filename)

python之python-docx编辑和读取word文档相关推荐

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

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

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

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

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

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

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

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

  5. python生成word文档的表格_2018-10-04 [日常]用Python读取word文档中的表格并比较

    演示如下. 两个简单的word文档, 各有一个表格: 读取文档中的表格到列表(为演示只对单列表格操作): import docx def 取表格(文件名): 文件 = docx.Document(文件 ...

  6. java读取word文档里面的内容(包括doc和docx格式)

    java读取word文档里面的内容(包括doc和docx格式) java读取word文档里面的内容(包括doc和docx格式),使用POI架包 使用的POI架包如下 poi-3.16.jar poi- ...

  7. php识别word语言,PHP读取word文档

    在PHP中读取和写入WORD文档的代码 php // 建立一个指向新COM组件的索引 $word = new COM("word.application") or die(&quo ...

  8. Python读取word文档(结尾是docx)中的表格

    最近在处理一个需求时:要求读取word文档中表格,然后再把表格写入Excel中 需求非常简单,步骤也很明确,好了,不废话,直接上代码 成功写入: 所需用到的库: pip install python- ...

  9. python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...

    目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...

最新文章

  1. 网络工程师课程---4、网络层(网关是什么)
  2. Linux内核ipsec密码库,关于2.6.18 ipsec内核支持(NETKEY)的问题
  3. wordpress中PHP运行错最有效解决办法Fatal error: Out of memory (allocated 6029312)(转)
  4. SpringCloud之五大组件
  5. PHP foreach遍历数组(多种方式)
  6. 会计电算化算不算计算机专业,成都会计学校会计电算化专业介绍
  7. Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏
  8. 可信云十年,重磅研究成果与2021云计算十大关键词悉数发布
  9. Hammer.js分析(三)——input.js
  10. 开发自己的PHP MVC框架(一)
  11. 2029.石子游戏 IX-LeetCode
  12. 基于Java实现的天气预报APP安卓项目MyWeather
  13. Linux程序设计(Linux shell编程五)
  14. eNSP路由器启动不了
  15. Android解析软件包时出现问题
  16. vue+element在IE中遇到的问题
  17. matlab版本转换
  18. 新年了,5G手机芯片,到底买谁?
  19. 管理Chromium源代码的利器——depot_tools
  20. 飞书深诺香港IPO招股书失效,营收、净利润均远不及木瓜移动

热门文章

  1. Linux下使用skype的拨打国内长途
  2. 认真的雪歌词的c语言编码,认真的雪(C调演奏版,薛之谦)钢琴谱简谱数字谱双手简谱.pdf...
  3. 泛目录程序如何设置目录反向代理(Nginx反向代理泛目录、目录、整站方法 nginx反向代理配置)
  4. php获取序列化表单,jQuery 序列化表单数据 serialize() serializeArray()
  5. 股票交易API接口有什么功能?
  6. 个人博客网站——留言及多级回复功能
  7. go vendor 项目迁移到 mod 项目
  8. mac chrome 浏览器强制刷新,清除浏览器缓存
  9. Linux中 Nginx+uwsgi部署flask项目 Nginx负载均衡 反向代理
  10. 尖头皮鞋对健康有害无益