【发布时间】:2022-10-24 19:11:52
【问题描述】:
我正在尝试从包含 100 页的文档中提取表格,该文档每周更新一次。表格标题保持一致,但表格内的数据每周都在变化。大约有。需要提取的不同页面上的 20-30 个表。所有表格都有一个标题,最后在表格后面有一个文本行。如何提取标题和结尾文本之间的表格,例如,表格标题是
“这是一张年表 x123”
<table>
然后结束文本。 “上表为xxxx”
这是一个示例,我需要根据每个表格的标题文本进行搜索,然后从其下方提取表格。
目前我正在使用的代码是从文档表中提取所有表。
from docx.api import Document
import pandas as pd
document = Document("C:/Users/user123/Desktop/Python/python_truncated_tables.docx")
tables = document.tables
df = pd.DataFrame()
for table in document.tables:
for row in table.rows:
text = [cell.text for cell in row.cells]
df = df.append([text], ignore_index=True)
df.columns = ["Column1", "Column2","Column3","Column4","Column5", "Column6","Column7","Column8","Column9"]
df.to_excel("C:/Users/user123/Desktop/Python/pythonoutput1.xlsx")
print(df)
【问题讨论】:
-
您是否提前知道所需的标题和结尾字符串?
-
是的,我事先有标题和结尾字符串。每个单独表格的标题和结尾字符串将保持不变。
-
到目前为止,您尝试过什么来隔离这些表?
-
我尝试将 doc 转换为 pdf,因为 pdf 允许使用页面范围提取内容,但是我从 pdf 文件的数据框中获得的输出是不可读的并且丢失了数据。
-
听起来你的问题不是只是获取两个指定字符串之间的文本,但首先获取文本。那是对的吗?如果是这样,我会重新构建您的问题以专注于这一点(但首先要寻找其他有解决方案的人从 PDF 中获取文本,这可能很困难)。
标签: python pandas dataframe datatables python-docx