繁体   English   中英

从 python 中的 DOCX Word 文档中提取表格

[英]Extracting tables from a DOCX Word document in python

我正在尝试提取 DOCX Word 文档中的表格内容,而我是 xml/xpath 的新手。

from docx import *
document = opendocx('someFile.docx')
tableList = document.xpath('/w:tbl')

这会触发“XPathEvalError:未定义的命名空间前缀”错误。 我敢肯定,这只是开发脚本时的第一个期望。 不幸的是,我找不到python-docx的教程。

您能否提供一个表格提取的示例?

经过一番反复,我们发现需要一个命名空间才能使其正常工作。 xpath 方法是合适的解决方案,它只需要首先传入文档命名空间。

lxml xpath 方法包含命名空间内容的详细信息。 查看链接中的页面以传递名称空间字典和其他详细信息。

正如 mgierdal 在上面的评论中所解释的那样:

tblList = document.xpath('//w:tbl', namespaces=document.nsmap) 像梦一样工作。 因此,据我了解,w: 是必须扩展为完整名称空间名称的简写,并且它的字典由 document.nsmap 提供。

您可以使用 python-docx 从 docx 中提取表格。 检查以下代码:

from docx import Document()
document = Document(file_path)

tables = document.tables

首先安装@abdulsaboor 提到的python-docx

pip install python-docx

那么这段代码应该这样做:

from docx import Document


document = Document('myfile.docx')

for table in document.tables:
    print()
    for row in table.rows:
        for cell in row.cells:
            print(cell.text, end=' ')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM