【问题标题】:Extract a table from word document which is between certain text , docx.api, Python从 word 文档中提取某个文本、docx.api、Python 之间的表格
【发布时间】: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


【解决方案1】:

你有没有想过这个?

我希望做同样的事情。我需要从word文档中提取表格。我想根据表头对表中的数据进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2010-11-12
    • 1970-01-01
    相关资源
    最近更新 更多