python之python-docx编辑和读取word文档
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文档相关推荐
- docx文档怎么排列图片_“胶水语言”办公自动化Word篇——使用Python编辑和读取Word文档
python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样: from docx import Doc ...
- python怎么读取word文件_使用python编辑和读取word文档
python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样: 1 from docx importDo ...
- python怎么读取word文件_python之python-docx编辑和读取word文档
python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样:1 from docx import Do ...
- 用python编辑word_使用PYTHON编辑和读取WORD文档
python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样: 1 from docx import D ...
- python生成word文档的表格_2018-10-04 [日常]用Python读取word文档中的表格并比较
演示如下. 两个简单的word文档, 各有一个表格: 读取文档中的表格到列表(为演示只对单列表格操作): import docx def 取表格(文件名): 文件 = docx.Document(文件 ...
- java读取word文档里面的内容(包括doc和docx格式)
java读取word文档里面的内容(包括doc和docx格式) java读取word文档里面的内容(包括doc和docx格式),使用POI架包 使用的POI架包如下 poi-3.16.jar poi- ...
- php识别word语言,PHP读取word文档
在PHP中读取和写入WORD文档的代码 php // 建立一个指向新COM组件的索引 $word = new COM("word.application") or die(&quo ...
- Python读取word文档(结尾是docx)中的表格
最近在处理一个需求时:要求读取word文档中表格,然后再把表格写入Excel中 需求非常简单,步骤也很明确,好了,不废话,直接上代码 成功写入: 所需用到的库: pip install python- ...
- python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...
目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...
最新文章
- 网络工程师课程---4、网络层(网关是什么)
- Linux内核ipsec密码库,关于2.6.18 ipsec内核支持(NETKEY)的问题
- wordpress中PHP运行错最有效解决办法Fatal error: Out of memory (allocated 6029312)(转)
- SpringCloud之五大组件
- PHP foreach遍历数组(多种方式)
- 会计电算化算不算计算机专业,成都会计学校会计电算化专业介绍
- Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏
- 可信云十年,重磅研究成果与2021云计算十大关键词悉数发布
- Hammer.js分析(三)——input.js
- 开发自己的PHP MVC框架(一)
- 2029.石子游戏 IX-LeetCode
- 基于Java实现的天气预报APP安卓项目MyWeather
- Linux程序设计(Linux shell编程五)
- eNSP路由器启动不了
- Android解析软件包时出现问题
- vue+element在IE中遇到的问题
- matlab版本转换
- 新年了,5G手机芯片,到底买谁?
- 管理Chromium源代码的利器——depot_tools
- 飞书深诺香港IPO招股书失效,营收、净利润均远不及木瓜移动
热门文章
- Linux下使用skype的拨打国内长途
- 认真的雪歌词的c语言编码,认真的雪(C调演奏版,薛之谦)钢琴谱简谱数字谱双手简谱.pdf...
- 泛目录程序如何设置目录反向代理(Nginx反向代理泛目录、目录、整站方法 nginx反向代理配置)
- php获取序列化表单,jQuery 序列化表单数据 serialize() serializeArray()
- 股票交易API接口有什么功能?
- 个人博客网站——留言及多级回复功能
- go vendor 项目迁移到 mod 项目
- mac chrome 浏览器强制刷新,清除浏览器缓存
- Linux中 Nginx+uwsgi部署flask项目 Nginx负载均衡 反向代理
- 尖头皮鞋对健康有害无益