openpyxl 条形图 LibreOffice 兼容性问题

openpyxl barchart LibreOffice compatibility issue

我想使用 pythons openpyxl 创建一个 Excel 文件,就像在这个视频中一样:https://youtu.be/fqvZZp2q2uE

代码很简单:

# See full Toturial at my Youtube Channel(YB TV): https://www.youtube.com/channel/UCvnhhDKv5takEN412dmVW8g/featured
# GitHab Page:https://github.com/yasser64b/
#Email: big3del@gmail.com

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference, Series, LineChart, ScatterChart
from openpyxl.styles import Font, Color, colors

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

# drawing a graph
values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
# chart = LineChart()
chart = BarChart()
ws.add_chart(chart, "A15")
chart.title = "Chart"
chart.y_axis.title = 'Size'
chart.x_axis.title = 'Test Number'
chart.add_data(values)

s1 = chart.series[0]
s1.marker.symbol = "triangle"



wb.save("Chart-1.xlsx")

但我在使用 LibreOffice Calc 打开它时遇到问题:

如果用 Gnumeric 打开它看起来更好:

如何使 .xlsx 文件与 LibreOffice Calc 更加兼容?

如果您不是特别需要使用 LibreOffice,而只是 excel 的免费等价物,则可以使用 OpenOffice。根据我的经验,它与 openpyxl 一起使用效果更好。

可能不是一个非常有用的解决方案,因为您需要访问 MS Excel,但对我来说,它可以先在 MS Excel 中打开文件,从那里保存,然后打开它在 LibreOffice 中(不确定这是否也适用于 Gnumeric;不知何故我的 Gnumeric 版本拒绝打开 Openpyxl 生成的图表)。

这很麻烦,而且如前所述,如果您无法访问 MS Excel,那将毫无用处 Excel,所以如果有人知道更直接的解决方案,我很乐意听听.

这是 LibreOffice 中的一个错误,将在 7.1.0 版中修复:

https://bugs.documentfoundation.org/show_bug.cgi?id=137734