Как напечатать все свойства диаграммы в Python-pptx - PullRequest
2 голосов
/ 12 июня 2019

У меня есть существующий график в файле pptx, я просто хочу обновлять его значения ежедневно, эти графики уже построены из Excel и вставлены в pptx, я просто хочу изменить графики,

, ноя не знаю, сколько в диаграммах свойств, таких как свойства серии, категории и заголовка.

Я могу распечатать данные ряда и категории диаграммы, но когда я изменяю их с помощью chart.replace_data(chart_data), я получаюошибка как показано ниже

return self._chart_part.related_parts[xlsx_part_rId]
KeyError: 'rId4'

Я использую приведенный ниже код для печати значений,

for series in chart.plots:
    for i in series.categories:
        cat_list.append(i)
for series in chart.series:
    for value in series.values:
        ser_list.append(value)

график выглядит следующим образом

sample graph

Как я могу изменить такие графики с обновленными значениями, которые я буду передавать из Excel в PPTX.

1 Ответ

4 голосов
/ 12 июня 2019

Я подозреваю, что проблема кроется в шаге "вставка из Excel".

Одна вещь, которую вы можете попробовать, это щелкнуть правой кнопкой мыши на диаграмме и выбрать «Редактировать значения в Excel». Если это не сработает по какой-либо причине, это объяснит ошибку, которую вы видите. Если это работает, попробуйте сохранить и запустить код python-pptx для сохраненной версии.

Альтернативным, возможно, более надежным решением было бы воссоздать диаграмму изначально в PowerPoint, начиная с добавления новой столбчатой ​​диаграммы и ее корректировки до тех пор, пока вы не получите то, что видите здесь. Тогда вы сможете ежедневно обновлять его, используя в значительной степени указанный вами код (хотя ваша переменная ser_list будет накапливать значения для всех рядов в диаграмме, если их больше одного).

Чтобы понять, почему это может происходить, важно заметить, что диаграмма не обязательно должна иметь рабочую таблицу Excel "позади" нее . Он может, и, возможно, имеет в этом случае вставки, просто иметь фиксированные литеральные значения, которые встроены в сам XML диаграммы. Положительной стороной этого является то, что операции вставки не нужно создавать целую электронную таблицу Excel, что может быть сложно в контексте вырезания и вставки. Обратной стороной является то, что значения не могут быть удобно изменены с помощью стандартных методов.

В последнее время я не пробовал работать с одним из них, поэтому я не знаю, добавляет ли редактирование и сохранение данных новый объект Excel, созданный из встроенных значений, или нет, но это может объяснить поведение, которое вы видите.

...