PythonandEMC 2021-02-20 16:19 采纳率: 0%
浏览 31

如何完全获取含有内嵌表格的word数据?

from docx import Document

document = Document(XXX.docx)

def get_nested_tables(table):
    for table_row in table.rows:
        for table_cell in table_row.cells:
            return table_cell.tables[0]

data_update = []

def get_table_text(table):
    table_text=''
    for i in table.rows:
        for j in i.cells:
            data_update.append(j.text)
    return table_text

table=document.tables[0] #第一个表格
get_table_text(get_nested_tables(table))
print(data_update)

目前只能输出第一行嵌套表内的数据,即data_update = ['1', '2', '3', '4']

想使用以上代码将下图输出data_update = ['1', '2', '3', '4','1', '2', '3', '4','5', '6'],如果第三行还有嵌套表还能继续在列表后append,应该如何修改?网上关于docx获取嵌套表数据的文章实在太少了,期待大佬的回复。

 

  • 写回答

2条回答 默认 最新

  • coagenth 2021-02-20 18:15
    关注

    改写一下代码,就能得到你想要的结果:

    from docx import Document

    document = Document('9.docx')

    def get_nested_tables(table):

        data=[]

        for table_row in table.rows:

            for table_cell in table_row.cells:

                data.append(table_cell.text)#将单元格数据添加进data列表。

        return data 

    new=[]

    for tab in document.tables:#遍历文档中所有表格

        d=get_nested_tables(tab)

        new.extend(d)#将表格数据添加到一个列表中,如果需要每个表格数据以一个列表形式表示的话,就用append。

    print(new)

     

    评论

报告相同问题?

悬赏问题

  • ¥30 计算机硬件实验报告寻代
  • ¥15 51单片机写代码,要求是图片上的要求,请大家积极参与,设计一个时钟,时间从12:00开始计时,液晶屏第一行显示time,第二行显示时间
  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
  • ¥15 抖音直播广场scheme