python如何实现对word内段落文本及表格的读取
2024-10-21 05:42:55
在以下方法中用到的三方库是:python-docx
from docx import Document
获取指定段落的文本
def get_paragraph_text(path, n):
"""
获取指定段落的文本
:param path: word路径
:param n: 第几段落,从0开始计数
:return: word文本
"""
document = Document(path)
all_paragraphs = len(document.paragraphs)
if all_paragraphs >= n:
paragraph_text = document.paragraphs[n].text
return paragraph_text
else:
raise IndexError('paragraph index (%s) out of range, in total %s' % (n, all_paragraphs))
获取全部段落的文本
def get_paragraphs_text(path):
"""
获取所有段落的文本
:param path: word路径
:return: list类型,如:
['Test', 'hello world', ...]
"""
document = Document(path)
all_paragraphs = document.paragraphs
paragraphs_text = []
for paragraph in all_paragraphs:
paragraphs_text.append(paragraph.text)
return paragraphs_text
获取所有表格的文本
def get_all_tables_text(path):
"""
获取word中所有表格的文本
:param path: word路径
:return: list类型的二维数组
如:[['年龄', '排序'], ['23', '00',], ...]
"""
document = Document(path)
all_tables = document.tables
text_list = []
for table in all_tables:
for row in table.rows:
text = []
for cell in row.cells:
text.append(cell.text)
text_list.append(text)
return text_list
获取指定表格的文本
def get_table_text(path, n=0):
"""
获取word中的第n个表格的文本
:param path: word路径
:param n: 第几个表格,从0开始计算
:return: list类型的二维数组
如:[['年龄', '排序'], ['23', '00',], ...]
"""
document = Document(path)
all_tables = len(document.tables)
if all_tables >= n:
table = document.tables[n]
text_list = []
for row in table.rows:
text = []
for cell in row.cells:
text.append(cell.text)
text_list.append(text)
return text_list
else:
raise IndexError('table index (%s) out of range, in total %s' % (n, all_tables))
获取指定表格内指定单元格文本
def get_cell_text(path, n=0, row=0, col=0):
"""
获取某个表格的某个单元格的值
:param path: word路径
:param n: 第几个表格,从0开始计算
:param row: 第几行,从0开始计算
:param col: 第几列,从0开始计算
:return: 单元格的值,str类型
"""
document = Document(path)
all_tables = len(document.tables)
if all_tables >= n:
rows = len(document.tables[n].rows)
cols = len(document.tables[n].columns)
if rows > row and cols > col:
tab = document.tables[n].rows[row].cells[col]
return tab.text
else:
raise IndexError('cell index out of range, %s;%s' % (row, col))
else:
raise IndexError('table index (%s) out of range, in toatl %s' % (n, all_tables))
最新文章
- Team Foundation Server源代码管理多人开发的使用心得
- nil与NULL的区别
- zabbix进程构成
- bootstrap日期控件在火狐下的模态框中选择时间下拉菜单无效的解决办法
- 温故而知新 OOP
- HDU 3874 Necklace (树状数组 | 线段树 的离线处理)
- nyoj 284 坦克大战 简单搜索
- Helloworld模块之内核makefile详解
- 操作系统和Python的发展历程
- HDOJ/HDU 1241 Oil Deposits(经典DFS)
- iOS: XCode6 beta 6 错误
- 【网络协议】TCP连接的建立和释放
- 使用dns批量管理普通主机名相关问题
- java之SpringMVC的controller配置总结
- Django入门一之安装及项目创建
- C#版 - Leetcode 593. 有效的正方形 - 题解
- constructor属性解析
- win7安装linux CentOS7双系统实践
- Springboot 热部署问题。亲测可用。
- 开源播放器 ijkplayer (一) :使用Ijkplayer播放直播视频
热门文章
- 卸载K8s集群及k8s命令自动补全
- Unity动态修改材质球RenderingMode属性
- Java编码规范总结(腾讯)
- 问题记录_IDEA启动报错:Failed to create JVM. JVM Path
- C 标准 C89/C90/C99/C11/C17
- 浅谈Redis与分布式锁
- 渗透测试工具sqlmap基础教程 【转】
- pytest_runtest_makereport 获取pytest的测试结果和caseid
- 关于邮箱怎么验证是不是真实的企业邮箱(java汉字和英文呼唤)
- WSL2安装了Ubuntu之后root不知道密码