【问题标题】:How to use two different font style and font properties in the same table cell using pptx python?如何使用pptx python在同一个表格单元格中使用两种不同的字体样式和字体属性?
【发布时间】:2020-11-05 01:53:47
【问题描述】:

我有一个表格,其中一个单元格中有两个单独的文本。

eg.
    -------------
   |  r1  |  r2  |
   |  25  |  32  |
    -------------
   |  s1  |  s2  |
   |  23  |  56  |
    -------------
   |   5734.23   |
    -------------

让我们考虑这是表格,我想更改 r1、r2、s1 和 s2 的字体大小和颜色,它们将是灰色和 8pts 大小,对于它们的值,我想要相同的字体但不同颜色的黑色或白色和大小将是 9pts,底部单元格将以粗体显示,并且与所有这 12pts 的字体大小不同。

我可以输入值并更改单元格的字体,但在同一个单元格中,我想使用两种不同的字体,字体属性也会有所不同。谁能帮我解决这个问题?

【问题讨论】:

    标签: python powerpoint python-pptx


    【解决方案1】:

    _Cell 对象具有 .text_frame 属性,类似于“常规”几何形状(自动形状),它的工作方式相同,提供对 TextFrame 对象的引用。

    您可以使用cell.text_frame.paragraphs 访问单元格中的段落,在TextFrame 对象上调用.add_paragraph(),并将具有不同字符格式的段落添加到段落中。

    您是否制作这些不同的段落或不同的运行取决于您,但这是基本想法。请注意,新创建的表格中的每个单元格都包含一个不包含任何运行的段落。

    例如:

    cell = table.cell(0, 0)
    text_frame = cell.text_frame
    paragraph = text_frame.paragraphs[0]
    
    run = paragraph.add_run()
    run.text = "r1"
    run.bold = True
    
    run_2 = paragraph.add_run()
    run.text = "25"
    run.italic = True
    

    您无需在单独的行中拼出每个步骤;例如,您可以这样做来获取段落:

    paragraph = table.cell(0, 0).text_frame.paragraphs[0]
    

    我只是在此处详细说明步骤,以便您更清楚地看到每个步骤。您可以将它们组合成您认为合适的线条。

    【讨论】:

    • 谢谢,这对我有帮助。我会努力实现的。
    • 感谢它确实有效。我还有一件事要问你能告诉我,那里有字符间距功能吗?
    • 没有。 API 不支持字符间距。
    猜你喜欢
    • 1970-01-01
    • 2013-09-25
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多