Python读写word文档
目录
前言
一、环境搭建
二、Word文档的读取
1.导入所需要的库
2.读取文档并提取段落数
3.读取docx中的段落文本内容
4.读取docx中的表格内容
三、Word文件的写入
保存文件
总结
前言
Word文档与其他纯文本文档的比较:
和纯文本文档相比,word种含有各种格式和样式,需要设置字体格式和大小、颜色,加粗等,段落间距行距等,其中还会涉及图表、公式等插入与调整。
run对象
一个Run
对象是具有相同格式的文本,当发生变化的时候就需要一个新的Run
对象。例如:共计6个run对象的文本:
AVL Cruise是AVL公司开发的一款整车及动力总成仿真分析软件。它可以研究整车的动力性、燃油经济性、排放性能及制动性能,是车辆系统的集成开发平台。AVL Cruise软件已经成功的在整车生产商和零部件供应商之间搭建起了沟通的桥梁。
第0个Run对象文本: AVL Cruise
第1个Run对象文本: 是
第2个Run对象文本: AVL
第3个Run对象文本: 公司开发的一款整车及动力总成仿真分析软件。它可以研究整车的动力性、燃油经济性、排放性能及制动性能,是车辆系统的集成开发平台。
第4个Run对象文本: AVL Cruise
第5个Run对象文本: 软件已经成功的在整车生产商和零部件供应商之间搭建起了沟通的桥梁。
一、环境搭建
读写Word也需要像读写Excel一样导入包,读写Word
文档的操作均由python-docx
模块,模块直接使用Ppip安装:
pip install python-docx
二、Word文档的读取
1.导入所需要的库
import docx # 读取Word文档
2.读取文档并提取段落数
doc =docx.Document(r'C:/Users/ypzhao/Desktop/训练/test.docx')# 读取docx文件中的内容
print(len(docx.paragraphs))#输出总的段落数
3.读取docx中的段落文本内容
# 读取word文档中的第一段内容
print(docx.paragraphs[0].text)'''指定word某几段内容读取'''
for i in range(2,5):print(docx.paragraphs[i].text)'''读取word种所有内容读取'''
for paragraph in docx.paragraphs:print(paragraph.text)
4.读取docx中的表格内容
for t in docx.tables: # for 循环获取表格对象for row in t.rows: # 获取每一行row_str = []for cell in row.cells: row_str.append(cell.text)print(row_str)
运行结果:
三、Word文件的写入
- 换行
# 换行
para = docx.add_paragraph().add_run('\n')
- word中表格写入
list1 = [
["语文","数学","英语"],
["100","100","100"],
["100","100","100"],
["100","100","100"],
["100","100","100"]
]
list2 = [
["政治","历史","地理"],
["100","100","100"],
["100","100","100"],
["100","100","100"],
["100","100","100"]
]
table1 = docx.add_table(rows=5,cols=3)for row in range(5):cells = table1.rows[row].cellsfor col in range(3):cells[col].text = str(list1[row][col])table2 = docx.add_table(rows=4,cols=3)for row in range(4):cells = table2.rows[row].cellsfor col in range(3):cells[col].text = str(list2[row][col])t = docx.tables[1]
workbook = Workbook()
sheet = workbook.active
for i in range(len(t.rows)):list1 = []for j in range(len(t.columns)):list1.append(t.cell(i,j).text)sheet.append(list1)
workbook.save("table1.xlsx")
保存文件
docx.save('test.docx')
完整代码
# -*- coding: utf-8 -*-
"""
Created on Sun May 7 14:22:49 2023@author: ypzhao"""
# 写入docx文件
import docx
# 设置图片格式
from docx.shared import Cm
from openpyxl import Workbook
from docx import Document
from docx.shared import Pt, RGBColor
from docx.oxml.ns import qndocx =docx.Document(r'C:/Users/ypzhao/Desktop/训练/test.docx')'''段落读取'''
# 读取docx文件中的内容
print(len(docx.paragraphs))#输出总的段落数
# 读取word文档中的第一段内容
print(docx.paragraphs[0].text)# 查看第1段中的对象数
print(len(docx.paragraphs[0].runs))
for i in range(6):print(f'第{i}个Run对象文本:',docx.paragraphs[0].runs[i].text)'''指定word某几段内容读取'''
for i in range(2,5):print(docx.paragraphs[i].text)'''读取word种所有内容读取'''
for paragraph in docx.paragraphs:print(paragraph.text)for t in docx.tables: # for 循环获取表格对象for row in t.rows: # 获取每一行row_str = []for cell in row.cells: # 获取每一行单独的小表格,然后将其内容拼接起来;拼接完成之后再第二个for循环中打印出来row_str.append(cell.text)print(row_str)p1 = docx.add_paragraph('这是一个段落')
# 加粗
p1.add_run('加粗的一句话').bold = True
# 斜体
p1.add_run("这句是斜体文字块").italic = Truedocx.add_paragraph('这是第二个段落')docx.add_paragraph('这是一个段落,后面带图片')'''
Cm 模块,用于设定图片尺寸大小
只给定一个宽度或高度
'''docx.add_picture('electric vehicle.png',width=Cm(14),height=Cm(7))
docx.add_paragraph('这是第二个段落')# 分页
docx.add_page_break()
paragraph1 = docx.add_paragraph("这是新增的一页")Document().add_heading('正文',1).add_run("前言")
Document().add_heading('标题',2)'''添加表格'''
# 换行
para = docx.add_paragraph().add_run('\n')
# 换行
para = docx.add_paragraph().add_run('\n')
# 换行
para = docx.add_paragraph().add_run('\n')
# 换行
para = docx.add_paragraph().add_run('\n')list1 = [
["语文","数学","英语"],
["100","100","100"],
["100","100","100"],
["100","100","100"],
["100","100","100"]
]
list2 = [
["政治","历史","地理"],
["100","100","100"],
["100","100","100"],
["100","100","100"],
["100","100","100"]
]
table1 = docx.add_table(rows=5,cols=3)for row in range(5):cells = table1.rows[row].cellsfor col in range(3):cells[col].text = str(list1[row][col])
docx.add_paragraph("---------------------------------------------------------")table2 = docx.add_table(rows=4,cols=3)for row in range(4):cells = table2.rows[row].cellsfor col in range(3):cells[col].text = str(list2[row][col])t = docx.tables[1]
workbook = Workbook()
sheet = workbook.active
for i in range(len(t.rows)):list1 = []for j in range(len(t.columns)):list1.append(t.cell(i,j).text)sheet.append(list1)
workbook.save("table1.xlsx")docx.save('test.docx')
提示:下期再见!
Python读写word文档相关推荐
- Python进行office操作 - 用Python读写Word文档入门
目录 0.场景 1.安装python-docx模块 2.读取Word文档 3.写入Word文档 (1)全局样式介绍 (2)调整word样式 (3)创建并写入word (4)设置多段落 (5)设置标题 ...
- 【python--教程】python读写word文档
前提需求: 需要提前使用pip安装python-docx,本次演示使用python版本为3.7.2. pip3 install python-docx 1.创建新的word文档 import docx ...
- python读写word文档-docx和docx2txt包使用实例
简介 doc是微软的专有的文件格式,docx是Microsoft Office2007之后版本使用,其基于Office Open XML标准的压缩文件格式,比 doc文件所占用空间更小.docx格式的 ...
- 【10】python 读写word文档
对应链接 https://python-docx.readthedocs.io/en/latest/ from docx import Document from docx.shared import ...
- Python-docx:读写word文档的Python库
Python-docx:读写word文档的Python库 1 Python DocX目前是Python OpenXML的一部分,你可以用它打开Word 2007及以后的文档,而用它保存的文档可以在Mi ...
- Python 操作Word文档(一)--- 基本读写
Python 操作Word文档(一)- 基本读写 安装python-docx库 命令安装 pip install python-docx IDE中安装,我使用的是PyCharm,如下 python-d ...
- Python-docx 读写 Word 文档:读取正文、表格文本信息、段落格式、字体格式等
Python-docx 模块读写 Word 文档基础(三):读取文档文本信息.表格信息.段落格式.字体格式等 前言: 1.获取文档章节信息: 2.获取段落文字信息: 3.获取文字格式信息: 4.获取文 ...
- 实例演示python-docx 读写word文档 段落、图片、表格
python-docx 读写word文档 段落.图片.表格 简介 运行环境与配置 成果物展示 模板word 输出word python-docx库安装 Python-docx 的使用技巧 关于文档编写 ...
- Python-docx 模块读写 Word 文档基础(一):创建文档、段落格式、字体格式设置方法
Python-docx 模块读写 Word 文档基础(一):创建文档.段落格式.字体格式设置方法 前言: 1.创建 Word 文档及基础用法: 2.段落格式设置: 3.字体格式设置: 结尾: [Pyt ...
最新文章
- 清华官宣:前百度总裁张亚勤正式加盟清华大学
- 为敏捷 BI 补上关键两环
- 使用Docker迁移与备份
- Python中关于‘self’的种种用法笔记
- Python导入CSV短代码(pandas?),以';'分隔 和','全部
- Codeforces Round #716 (Div. 2)
- opencv:边缘检测之Laplacian算子思想及实现
- slack 使用说明_我如何使用Node和Botkit构建HR Slack Bot
- java.lang.NoClassDefFoundError: javax/mail/internet/AddressException解决
- 再谈重载:一个矢量类
- CCNA-3-Cisco静态路由
- 【狂神css笔记】美化网页元素
- 一款跑在云上的定制容器专属 OS
- 零基础如何学习C语言
- html5动漫人物小部件制作,虚拟动漫人物制作器app
- 惠惠软件|CSDN笔耕不辍Lv1
- 显卡天梯图vs专业计算卡丽台T4,v100vs混合精度训练
- Python获取免费代理IP,并全部测试一遍,结果大失所望
- Spring概述及IOC(控制反转) Part I
- 黑马Java品优购分布式电商项目全套视频及源码