Seite 1 von 1

openpyxl: Diagramm in Excel-Datei wird in LibreOffice nicht richtig dargestellt

Verfasst: Montag 12. Oktober 2020, 21:20
von earloop
Hallo,

dieser code erstellt mit openpyxl eine Excel-Datei:

Code: Alles auswählen

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active
for i in range(10):
    ws.append([i])

values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
chart = BarChart()
ws.add_chart(chart, "A15")
chart.title = "Chart"
chart.y_axis.title = 'Size'
chart.x_axis.title = 'Test Number'
chart.legend.Legend = False
chart.add_data(values)

wb.save("BarChart1.xlsx")
Wenn ich diese Datei mit Excel öffne sieht sie so aus (korrekt):
Bild
Wenn ich sie mit LibreOffice öffne sieht sie so aus (nicht korrekt):
Bild
und wenn ich sie mit FreeOffice öffne wird gar kein Diagramm angezeigt.

Mein erster Gedanke war ok, das xlsx-Format ist offensichtlich nicht kopatibel mit LibreOffice. Das erschien mir aber nicht besonders wahrscheinlich, denn wenn ich Excel-Dateien manuell erstelle werden die in aller Regel gut von LibreOffice dargestellt.

Ich habe ein zweites Skript ohne openpyxl geschrieben, das eine fast identische Datei erzeugt:

Code: Alles auswählen

import pandas as pd

writer = pd.ExcelWriter('BarChart2.xlsx', engine='xlsxwriter')

Data = pd.DataFrame([0,1,2,3,4,5,6,7,8,9])
Data.to_excel(writer , sheet_name='Sheet', header = False, index = False)

workbook  = writer.book
worksheet = writer.sheets['Sheet']

chart = workbook.add_chart({'type': 'column'})

chart.add_series({'values': '=Sheet!A1:A10', 'data_labels': {'value': False, 'legend_key': False}})

chart.set_legend({'none': True}) 
chart.set_title({'name': 'Chart'})
chart.set_x_axis({'name': 'Test Number'})
chart.set_y_axis({'name': 'Size'})

worksheet.insert_chart(14, 0, chart)

writer.save()
und siehe da, diese wird von allen 3 Office-Anwendungen korrekt dargestellt.
Also muss wohl irgendein Fehler in meinem Skript sein, oder?
Wie kann ich mit openpyxl eine Excel-Datei erstellen, die auch kompatibel mit LibreOffice ist?

Re: openpyxl: Diagramm in Excel-Datei wird in LibreOffice nicht richtig dargestellt

Verfasst: Samstag 24. Oktober 2020, 19:22
von earloop
Hat wirklich niemand eine Idee, woran das liegen kann? :)