我正在尝试提取DOCX Word文档中的表格内容,而且我是xml / xpath的新手。
from docx import *
document = opendocx('someFile.docx')
tableList = document.xpath('/w:tbl')
这会触发“XPathEvalError:Undefined namespace prefix”错误。我确信这只是开发脚本时第一个期待的。很遗憾,我找不到python-docx的教程。
你能提供表格提取的例子吗?
答案 0 :(得分:3)
经过一番来回,我们发现需要一个命名空间才能正常工作。 xpath方法是适当的解决方案,它只需要首先传入文档命名空间。
lxml xpath method包含名称空间内容的详细信息。查看链接中的页面以传递名称空间字典和其他详细信息。
正如mgierdal在上述评论中所解释的那样:
tblList = document.xpath('// w:tbl',namespaces = document.nsmap)有效 像做梦一样。所以,据我所知w:是必须的简写 扩展到完整的命名空间名称,其字典是 由document.nsmap提供。
答案 1 :(得分:0)
您可以使用python-docx从docx中提取表。检查以下代码:
from docx import Document()
document = Document(file_path)
tables = document.tables
答案 2 :(得分:0)
首先安装@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=' ')