gpt4 book ai didi

python - 使用 Python (python-pptx) 编辑底层 PowerPoint XML

转载 作者:行者123 更新时间:2023-11-28 17:08:19 24 4
gpt4 key购买 nike

我有 PowerPoint 文件,其中包含许多指向 Excel 文档中不同工作表的链接。我需要以编程方式更改这些链接指向的 Excel 文档。

我很确定我可以用 VBA 做到这一点,但由于我是在 python 中生成 Excel 文档,所以我更愿意更新那里的链接。

我深入研究了测试 .pptx 文件的底层 XML 文件,发现链接引用位于 ppt/slides/_rels/ 文件夹中(解压缩后.pptx 文件)

例如,slide1.xml.rels 包含多个关系,一个具有 TargetMode="External"Target="FULL_PATH_OMITTED\test.xlsx!Sheet1 !R3C5:R20C14"

使用 python-ppt 包我发现这个相同的引用位于 slide.part.rels

例如:

for rel in slides[0].part.rels.values():
if rel.is_external:
print(rel.target_ref)

为链接找到相同的路径(即 "FULL_PATH_OMITTED\test.xlsx!Sheet1!R3C5:R20C14")

我不知道如何更改此值(如果可以更改的话)。只是尝试使用 python-pptx 设置它会产生一个 AttributeError

有没有办法使用 python-pptx 修改 PowerPoint 文件的底层 XML?或者一些替代策略会很好。

最佳答案

尝试设置 rel(关系)对象的 ._target 属性
https://github.com/scanny/python-pptx/blob/master/pptx/opc/package.py#L555

rel._target = 'FULL_PATH_OMITTED\test.xlsx!Sheet1!R3C5:R20C14'

这仅在关系类型为外部(而不是与同一包中的另一部分的关系)时有效。

当然,这是内部黑客攻击,因此使用风险自负。也就是说,这部分代码库长期以来一直非常稳定。

关于python - 使用 Python (python-pptx) 编辑底层 PowerPoint XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49560567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com