0
点赞
收藏
分享

微信扫一扫

python根据表名称提取表格数据

小磊z 2022-04-23 阅读 43
python

利用docx的私有方法提取表格信息:

最近在开发一个场景的时候遇到了一个复制表格的需求,本来是ceb程序,转化成pdf表格信息难以提取,于是又转成了word,因此试了试python。


提取表格:

提示:话不多说直接上代码

import docx

def find_table(file_name, find_text):
	ele = []
    doc_obj = docx.Document(file_name)
    para = doc_obj.paragraphs
    all_tables = doc_obj.tables
    find_text = find_text.encode('utf-8')
    find_text = find_text.decode('utf-8')
    res = []
    for ara in para:
        if ara.text == find_text:
            ele = ara._p.getnext()
            while ele.tag[-3:] != 'tbl' and ele.tag != '':
                ele = ele.getnext()
     if ele.tag != '':
         for table in all_tables:
             if table._tbl == ele:
                 for i in range(len(table.rows)):
                     lin = []
                     for j in range(len(table.columns)):
                         lin.append(table.cell(i, j).text)
                     res.append(lin)
    return res

test = find_table(r"E:\desk\test\测试.docx", '测试表1')
print(test)

代码使用:

函数的第一个参数为word的文件名称,例如:r"C\test.docx",第二个参数为查找的表格名称,尽量是表格上部的文字,通过循环段落文字查找目标文字,找到后寻找下一个表格循环表格行列取出表格数据。res 返回结果是一个二维列表,方便使用。
在这里插入图片描述

举报

相关推荐

0 条评论