Я пытаюсь упростить процесс на работе и столкнулся с проблемой с использованием объектов Pandas Styler и PowerPoint.
В итоге, получатели не хотят Jupyter Notebook или даже HTML-версиюБлокнот Jupyter со скрытым / удаленным кодом.Они хотят PowerPoint, без исключений.
Я написал несколько модулей на Python для репликации процесса, и все в идеальном рабочем состоянии, за исключением кадров данных Pandas.Получатели хотят красивые красочные таблицы, и я нашел способ воспроизвести именно то, что они хотят.Приведенный ниже код дает мне точную таблицу:
import pandas as pd
df = pd.DataFrame({'Col1': ['a', 'b', 'c', 'd'],
'Col2': ['e', 'f', 'g', 'h'],
'Col3': [1, 2, 3, 4]})
(df.style
.background_gradient(cmap='RdYlGn', subset='Col3')
.set_caption('Test'))
При запуске этого в ноутбуках Juypter я получаю ровно вывод, который я хочу сделать в PowerPoint.
Как мне взять точно то, на что я смотрю, и получить его в PowerPoint без без скриншота?Идея состоит в том, чтобы максимально автоматизировать это.
Я пробовал метод Pandas.DataFrame.Styler.render()
, но не вижу способа внедрить необработанный HTML-код в PowerPoint и получить визуализированную таблицу без отдельного плагина (невариант).
Я также не вижу способа экспортировать объект Styler как изображение, поэтому кажется, что его нет, если я его не пропустил.
Я экспортировал его в Excel, который сохраняет ячейкураскраска, но теряет числовое форматирование (например, $ 100 превращается обратно в 99,98573822839575), так что ничего не получается.
Лучшее, что я нашел, это использовать замечательный пакет python-pptx
, который делает много замечательных вещей с таблицами, но я не могу найтиспособ использовать этот пакет для импорта объекта Styler в PowerPoint.
pd.__version__ = '0.24.2'
python.__version__ = '3.7.3'
jupyter.__version__ = '1.0.0'
notebook.__version__ = '5.7.8'
PowerPoint 2013 (15.0.5093.1000) MSO (15.0.5127.1000) 32-bit
Windows 10 Enterprise 10.0.16299 Build 16299