我试图遍历文档中的所有表并从中提取文本。作为中间步骤,我只是尝试将文本打印到控制台。
我在类似的帖子中查看了scanny提供的其他代码,但由于某种原因,它没有从我正在解析的文档中给出我预期的输出
该文件可在https://www.ontario.ca/laws/regulation/140300找到
from docx import Document
from docx.enum.text import WD_COLOR_INDEX
import os, re, sys
document = Document("path/to/doc")
tables = document.tables
for table in tables:
for row in table.rows:
for cell in row.cells:
for paragraph in cell.paragraphs:
print(paragraph.text)
我希望这会打印出所有文字,但我什么都没得到。如果我尝试打印(row.cells)它只是print()。这是一个空列表我猜。我的文件确实在单元格中有文字。不知道这里有什么不对。
任何帮助表示赞赏,
单元格文本可能“包含”在python-docx
尚未理解的包装元素中。最常见的例子是修订标记。
诊断问题的最直接方法是使用opc-diag
(作为一个选项)检查有问题的表的XML。但如果它是修订标记,我相信接受文档的所有修订都会修复它,尽管我自己并没有真正尝试过。
如果这不起作用并且您发布了表XML的示例,我可以仔细查看。
发现错误。我使用第三方工具(multiDoc转换器)将旧的.Doc文件转换为Docx格式。大多数情况下都有效,但是必须有一些元数据无法正确转换,因为它导致了问题。打开文件并手动将其保存为Docx解决了问题。唯一的问题是我想将2000+文件转换为Docx,所以我需要找到另一种转换文件的解决方案。