如何使用 python-pptx 在 PPT 幻灯片的表格单元格中填充项目符号点

问题描述 投票:0回答:1

我正在尝试在有表格的 PPT 幻灯片中填充一些值。 这些值位于列表中,并希望将它们显示为项目符号点。 我正在使用 python-pptx 模块进行编码。 我怎样才能做到这一点?

我尝试了下面的代码,该代码从具有表格占位符的现有布局创建幻灯片。

# Insert and populate the Table in the slide.
def populate_table():

    table_ph = slide.placeholders[12]
    graphic_frame = table_ph.insert_table(rows = 2, cols = 3)
    table = graphic_frame.table

    # Get a handle to text_frame to a particular cell
    tf = table.cell(1,2).text_frame
    p = tf.paragraphs[0]
    p.text = "Bullet 1"
    p.level = 1

    # Second Bullet value
    p = tf.add_paragraph()
    p.text = "Bullet 2"
    p.level = 1

    # Third Bullet value
    p = tf.add_paragraph()
    p.text = "Bullet 3"
    p.level = 1

上面的代码在单元格(1,2)中打印/显示3个字符串作为3行,但它们没有显示为项目符号点。

注意:在文本形状占位符中运行相同的代码将显示项目符号点。

shape = slide.placeholders[0] # This is a text placeholder.
tf = shape.text_frame

任何人都可以指导我我做错了什么吗?如何在表格单元格中显示项目符号点?

python-pptx
1个回答
0
投票

虽然您无法将项目符号添加到新创建的表格,但您可以更新目标单元格中已有项目符号的现有表格的文本。如果您的目标是自动定期更新现有套牌,这可以解决您的问题。

  1. 在幻灯片中创建包含表格和一些带有项目符号的占位符文本的幻灯片。例如: enter image description here

  2. 访问现有表格和段落。您需要确定幻灯片上的哪个形状与您的表格相对应。在我的示例中,我的表格形状为零。不要添加段落,否则您将在单元格中添加空白行。

    tab1 = slide.shapes[0].table
    tab1.cell(1, 1).text_frame.paragraphs[0].text = "New bullet 1."
    tab1.cell(1, 1).text_frame.paragraphs[1].text = "New bullet 2."
  1. 您现在可以设置段落格式。这可以通过迭代行、单元格、段落和运行来完成,如此处所建议。例如,要将第 1 列中除标题之外的所有单元格格式设置为 Arial 9:
    nrows = len(tab1.rows)
    for row in np.arange(1, nrows):
        for paragraph in tab1.cell(row, 1).text_frame.paragraphs:
            for run in paragraph.runs:
                run.font.size = Pt(9)
                run.font.name = 'Arial'

您的最终结果将是: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.