OpenPyxl не будет работать, так как он удалит форматирование диаграммы перед сохранением файла.Причина, по которой существующее форматирование диаграмм не сохраняется, связана с дизайном OpenPyxl.OpenPyxl похож на дублирующую реализацию Excel для Linux и Mac OS.Это не просто вызов существующих функций COM и Excel-VBA.Поэтому в будущем обновлении будет сложно добавить в эту библиотеку расширенные функции форматирования диаграмм Excel.
Вот некоторые библиотеки Linux , которые могут помочь.
xlutils.copy https://xlutils.readthedocs.io/en/latest/copy.html
pyexcelerator (старая библиотека)
https://sourceforge.net/projects/pyexcelerator/
См. Как программно редактировать листы Excel?
Да, pywin32 требует ОС Windows или эмуляцию Windows.Это лучший способ работы с файлами Excel, поскольку вы получаете полный доступ ко всем COM-объектам Windows и ко всем объектам Excel-VBA Worksheets (иногда с небольшими изменениями).
Возможно, вы можете использовать pywin32 в эмуляции Windows, чтобы отделить объекты Chart Sheet, затем использовать openpyxl для редактирования рабочих таблиц в Linux, и, наконец, собрать сборочную книгу, используя pywin32?См. Пример кода Pywin32 ниже.
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb0 = excel.Workbooks.Open(r'C:\path\source.xlsx')
excel.Visible = True
# Move Chart 1 to a new Workbook, which becomes the ActiveWorkbook.
wb0.Charts('Chart1').Move()
excel.ActiveWorkbook.SaveAs(r'C:\path\chart1.xlsx')
excel.ActiveWorkbook.Close()
wb0.SaveAs(r'C:\path\no_charts.xlsx')
wb0.Close()
excel.Application.Quit()