【发布时间】:2021-04-25 11:27:26
【问题描述】:
我已经设法使用python-pptx 在 Python 中读取了一个现有的 .pptx 文件,并且我可以访问 powerpoint 幻灯片中的表格。
我做不到:获取单元格的边框颜色。
我想根据表格边框颜色在表格单元格中插入数据,例如。 G。在带有绿色边框的表格单元格中插入“111”,在带有红色边框的单元格中插入“222”。
插入值有效,但不检查表格(或单元格)边框颜色,数据最终会出现在错误的位置。
一张ppt幻灯片上不止一张桌子。这些表格都采用独特的边框颜色,例如。 G。一张桌子周围有纯绿色边框,另一张是完全绿色的,另一张是蓝色的,依此类推。
这就是我迭代页表和访问单元格的方式:
from pptx import Presentation
pptx_file = r"my_file_here"
with open(pptx_file, "rb") as pptx:
prs = Presentation(pptx)
for slide in prs.slides:
for shape in slide.shapes:
if not shape.has_table:
continue
table = shape.table
my_input_field = table.cell(0, 1)
我想根据颜色插入my_input_field,但不知道如何获取/检查/读取它的边框颜色?
恐怕我太笨了,无法处理那里的信息,这对我没有帮助: https://python-pptx.readthedocs.io/en/latest/api/dml.html#pptx.dml.color.ColorFormat
有人能指出正确的方向吗?
编辑:
我很确定有一种方法可以访问颜色。 The docs state:
细胞
单元格具有背景填充、边框、边距和其他几个 可以逐个单元格自定义的格式设置。
但我不知道如何访问此属性。我已经查看了设置颜色的代码 sn-ps,但我无法理解这些示例。
编辑 2:我的解决方法
我仍然没有解决方案,但万一有人偶然发现 - 这是我的小解决方法:我将表格的颜色名称作为文本放在表格本身中。
当迭代所有表时,我从表中读取此文本并将其删除。这样我可以区分表格并添加正确的信息。
这不是很好,但它确实有效。
【问题讨论】:
标签: python powerpoint python-pptx