如何使用pptx python在同一表单元格中使用两种不同的字体样式和字体属性?

问题描述

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

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

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

我能够输入值并更改单元格的字体,但是在同一单元格中,我想使用两种不同的字体,并且字体属性也将有所不同。有人可以帮我吗?

解决方法

_Cell对象具有.text_frame属性,例如“常规”几何形状(自动形状),并且以相同的方式工作,提供了对TextFrame对象的引用

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

是由您决定编写这些不同的段落还是运行不同的内容,但这是基本思想。请注意,新创建的表格中的每个单元格都包含一个不包含任何运行的段落。

例如:

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]

我只是在这里阐明了步骤,因此您可以更清楚地看到每个步骤。您可以根据需要将它们组成几行。