Обновить связанный путь Excel в PowerPoint через Python - PullRequest
0 голосов
/ 29 января 2019

Я хочу автоматизировать создание ppt в PowerPoint, связывая шаблоны с некоторыми файлами Excel.Обновление значений файла Excel изменяет слайды PowerPoint автоматически.Я создал свой шаблон PowerPoint и связанные диаграммы для выборки данных файлов Excel.

Я хочу отправить папку с файлами Powerpoint и файлы Excel кому-то еще.Но это нарушит ссылку на файлы Excel из-за изменения пути.(Так как путь не относительный).Я могу редактировать пути вручную, перейдя в опцию «Редактировать ссылки на файлы» в меню «Файл», но это утомительно, так как диаграмм много с несколькими файлами.

Я хочу обновить то же самое с помощью кода Python, используя Python-Pptx пакет.

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 30 января 2019

В текущей версии python-pptx нет поддержки API для этого.

Вам нужно будет напрямую изменить базовый XML, возможно, используя python-pptx внутреннюю часть в качестве отправной точки и используя lxml вызовына соответствующих элементах объектов.Если вы выполните поиск по «функции обхода python-pptx», вы найдете несколько примеров.

Еще одна вещь, которую следует учитывать, - это изменение XML более грубым, но все же возможно эффективным способом путем прямого доступа к файлам XML в пакете .pptx (файл .pptx представляет собой Zip-архив, состоящий в основном из файлов XML) и использующий регулярные выражения или, возможно, инструмент командной строки, например sed или awk, для простой подстановки текста.

В любом случаенужно очень сильно хотеть этого, в зависимости от вашего уровня навыков Python.Вам также, конечно, нужно выяснить, какие строки, в каких частях XML нужно изменить.opc-diag может быть полезным для этого, но это немного детективная работа даже с лучшими инструментами.

...