EPPlus 4.1 库以 .xlsx 格式创建的图表未显示在 openoffice 或 libreoffice 中
Charts created by EPPlus 4.1 library in .xlsx format are not displaying in openoffice or libreoffice
EPplus 在 C# 中创建的图表在 LibreOffice 和 OpenOffice 中无法显示,但在 Microsoft office 中可以正常显示。
有一种解决方法,如果我在 Microsoft Office 中打开 excel 文件然后再次保存它,那么文件图表在 Libreoffice 和 OpenOffice 上可以正常显示。
Microsoft office中显示的图表如下图所示:
LibreOffice 和 OpenOffice 中显示的图表如下图所示。
在使用 EPPlus 保存图表时是否需要设置任何 属性 以便可以在 OpenOffice 中查看。
我也遇到了这个问题,不得不将生成的文件与保存的文件进行比较,并查看源代码以了解如何做:
折线图:
ExcelLineChartSerie serie = (ExcelLineChartSerie)chart.Series.Add(...);
serie.Marker = eMarkerStyle.None;
serie.LineColor = Color.FromArgb( 0x00, 0x45, 0x86 );
对于条形图:
ExcelChartSerie serie = chart.Series.Add(...);
serie.Fill.Style = eFillStyle.SolidFill;
serie.Fill.Color = Color.FromArgb( 0x00, 0x45, 0x86 );
我还没有使用其他图表,所以可能还有一些其他字段需要初始化。
更新:
我看到我的图表也没有坐标轴,不得不想办法说服 libreoffice 绘制它们:
chart.XAxis.Border.Fill.Style = eFillStyle.SolidFill;
chart.XAxis.Border.Fill.Color = Color.FromArgb( 0x00, 0x00, 0x00 );
chart.YAxis.Border.Fill.Style = eFillStyle.SolidFill;
chart.YAxis.Border.Fill.Color = Color.FromArgb( 0x00, 0x00, 0x00 );
EPplus 在 C# 中创建的图表在 LibreOffice 和 OpenOffice 中无法显示,但在 Microsoft office 中可以正常显示。
有一种解决方法,如果我在 Microsoft Office 中打开 excel 文件然后再次保存它,那么文件图表在 Libreoffice 和 OpenOffice 上可以正常显示。
Microsoft office中显示的图表如下图所示:
LibreOffice 和 OpenOffice 中显示的图表如下图所示。
在使用 EPPlus 保存图表时是否需要设置任何 属性 以便可以在 OpenOffice 中查看。
我也遇到了这个问题,不得不将生成的文件与保存的文件进行比较,并查看源代码以了解如何做:
折线图:
ExcelLineChartSerie serie = (ExcelLineChartSerie)chart.Series.Add(...);
serie.Marker = eMarkerStyle.None;
serie.LineColor = Color.FromArgb( 0x00, 0x45, 0x86 );
对于条形图:
ExcelChartSerie serie = chart.Series.Add(...);
serie.Fill.Style = eFillStyle.SolidFill;
serie.Fill.Color = Color.FromArgb( 0x00, 0x45, 0x86 );
我还没有使用其他图表,所以可能还有一些其他字段需要初始化。
更新:
我看到我的图表也没有坐标轴,不得不想办法说服 libreoffice 绘制它们:
chart.XAxis.Border.Fill.Style = eFillStyle.SolidFill;
chart.XAxis.Border.Fill.Color = Color.FromArgb( 0x00, 0x00, 0x00 );
chart.YAxis.Border.Fill.Style = eFillStyle.SolidFill;
chart.YAxis.Border.Fill.Color = Color.FromArgb( 0x00, 0x00, 0x00 );