在 Python 中阅读 PowerPoint Table?

Read From PowerPoint Table in Python?

我正在使用 python pptx 模块自动更新 powerpoint 文件中的值。我可以使用以下代码提取文件中的所有文本:

from pptx import Presentation
prs = Presentation(path_to_presentation)
# text_runs will be populated with a list of strings,
# one for each text run in presentation
text_runs = []
for slide in prs.slides:
  for shape in slide.shapes:
    if not shape.has_text_frame:
      continue
  for paragraph in shape.text_frame.paragraphs:
    for run in paragraph.runs:
      text_runs.append(run.text)

此代码将提取文件中的所有文本,但无法提取 ppt 中的文本 table,我想更新其中的一些值。我试图从这个问题中实现一些代码:Reading text values in a PowerPoint table using pptx? 但不能。有任何想法吗?谢谢。

您的代码将遗漏更多文本,而不仅仅是表格;例如,它不会看到属于组的形状中的文本。

对于表格,您需要做几件事:

测试形状以查看形状的 .HasTable 属性 是否为真。如果是这样,您可以使用形状的 .Table 对象来提取文本。从概念上讲,非常空气代码:

For r = 1 to tbl.rows.count
   For c = 1 to tbl.columns.count
      tbl.cell(r,c).Shape.Textframe.Text ' is what you're after

这对我有用:

    def access_table(): 
            slide = prs.slides[0] #first slide
            table = slide.shapes[2].table # maybe 0..n
            for r in table.rows:
                    s = ""
                    for c in r.cells:
                            s += c.text_frame.text + " | "
                            #to write
                            #c.text_frame.text = "example"
                    print s