在以下方法中用到的三方库是: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))

  

最新文章

  1. Team Foundation Server源代码管理多人开发的使用心得
  2. nil与NULL的区别
  3. zabbix进程构成
  4. bootstrap日期控件在火狐下的模态框中选择时间下拉菜单无效的解决办法
  5. 温故而知新 OOP
  6. HDU 3874 Necklace (树状数组 | 线段树 的离线处理)
  7. nyoj 284 坦克大战 简单搜索
  8. Helloworld模块之内核makefile详解
  9. 操作系统和Python的发展历程
  10. HDOJ/HDU 1241 Oil Deposits(经典DFS)
  11. iOS: XCode6 beta 6 错误
  12. 【网络协议】TCP连接的建立和释放
  13. 使用dns批量管理普通主机名相关问题
  14. java之SpringMVC的controller配置总结
  15. Django入门一之安装及项目创建
  16. C#版 - Leetcode 593. 有效的正方形 - 题解
  17. constructor属性解析
  18. win7安装linux CentOS7双系统实践
  19. Springboot 热部署问题。亲测可用。
  20. 开源播放器 ijkplayer (一) :使用Ijkplayer播放直播视频

热门文章

  1. 卸载K8s集群及k8s命令自动补全
  2. Unity动态修改材质球RenderingMode属性
  3. Java编码规范总结(腾讯)
  4. 问题记录_IDEA启动报错:Failed to create JVM. JVM Path
  5. C 标准 C89/C90/C99/C11/C17
  6. 浅谈Redis与分布式锁
  7. 渗透测试工具sqlmap基础教程 【转】
  8. pytest_runtest_makereport 获取pytest的测试结果和caseid
  9. 关于邮箱怎么验证是不是真实的企业邮箱(java汉字和英文呼唤)
  10. WSL2安装了Ubuntu之后root不知道密码