python读取word文档内嵌表格

问题描述:

在使用python-docx包时想读取如下图所示表格中的嵌套表格内容
在这里插入图片描述

其他更加复杂的内嵌表格例子如下:
在这里插入图片描述

解决方案:

在网上没有找到可行的嵌套表格内容读取方法。查看python-docx包源代码找到以下两种解决方案:

方案一:按行列读到单元格后再取tables,此处table_cell.tables值为一个列表,一般一个单元格中内嵌的表格不会多于一个,所以此处直接取list第一个,即table_cell.tables[0],如内嵌多个表格,遍历list即可;

方案二:直接取tables的cell对象,定位到0行0列的cell(如果内嵌单元格在外部表格的row行column列,则取cell(row,column)),同上list取第一个。

from docx import Document

#方案一:输入外层表格table,输出为内层表格
def get_nested_tables_solu1(table):
    for table_row in table.rows:
        for table_cell in table_row.cells:
            return table_cell.tables[0]

#方案二:输入外层表格,以及内嵌表格在外层表格的行列位置row,column,默认为第一行第一列
def get_nested_tables_solu2(table,row=0,column=0):
    return table.cell(row,column).tables[0]

#读普通表格内容
def get_table_text(table):
    table_text=''
    for i in table.rows:
        for j in i.cells:
            table_text=table_text+j.text+', '
        table_text=table_text+'\n'
    return table_text

#打开doc文档
document = Document('./data/editorialNotes/1Files(24).docx')  
#我的第二个表格是嵌套表格
table=document.tables[1]
text_solu1= get_table_text(get_nested_tables_solu1(table))
text_solu2= get_table_text(get_nested_tables_solu2(table))

读出的嵌套表格内容
在这里插入图片描述

参考:
[1] https://github.com/python-openxml/python-docx
[2] python word解析 嵌套表格
[3] bound和unbound方法,类的绑定和非绑定是什么

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值