我对这个库还是新手,我似乎无法理解如何从文档中修改现有表。最好的方法是什么?我已经有了数据框(3 列,8 行),并且可以访问该表(例如 slide[0].shape[1]
)。如何使用此数据框来更新数据(电影、售票量、观看百分比?)
最佳答案
您必须编写一个简短的例程来逐个单元地执行此操作。 PowerPoint 表格中的每个单元格都是一个文本容器,并且 API 中没有“从序列序列(矩阵)填充此表格的单元格”方法。
请注意,所有值都必须为 str
类型(如果使用的是 Python 2,则为 unicode
)。 PowerPoint 表格不像 Excel 那样没有数字或公式的概念。每个单元格仅包含文本。
这样的方法在简单的情况下可以解决问题,但是您已经可以看到可能存在复杂性,例如“如果我想跳过标题行怎么办”或“如果矩阵的大小与表格不同怎么办” ,或者“如果我想根据列格式化具有特定小数位的数字该怎么办”等。
M = {"matrix", some sequence of sequences like a `numpy` array or list of lists}
table = {"table" object retrieved from a shape on a slide}
populate_table(table, M)
def populate_table(table, M):
for row in range(len(M)):
row_cells = table.rows[row].cells
for col in range(len(M[0]):
row_cells[col].text = str(M[row][col])
涉及的代码很小且易于定制,并且设计和使用通用解决方案的复杂性相当高,因此这需要用户自己解决。
没有什么可以阻止您创建自己的函数,如上面的 populate_table(matrix, table)
并在适合您的地方使用它。
关于python - 如何使用 pandas 和 python-pptx 修改 powerpoint 中的现有表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68421604/