(本文档仅供参考)
Echarts图形中需要标识markline,但是markline标识的指标是由另一数据集中的指标动态计算而来的平均值,可以如何实现呢。
可以考虑通过宏代码获取到另一数据集的指标结果来加载markline:
1、将另一数据集字段拖拽到辅助sheet1中,可自行在数据集或excel中使用公式计算出平均值结果
2、参考如下宏代码获取指定单元格中的平均值结果:电子表格获取来自于不同sheet页中单元格中数据
如下示例,获取上图中G6计算的平均值结果:
3、sheet2中拖拽图形,并开启图形的刻度线设置
4、通过宏代码设置图形的markLine值为服务端宏代码中获取到的单元格计算结果(如下示例仅针对单series、单markLine实现,请自行根据实际报表调整宏代码):
/* 类型:客户端 对象:chart 事件:beforeRenderer */ function main(chartView) { //获取平均值 var avg=spreadsheetReport.customProperties["G6"]; var op = chartView.getChartObject().getOptions();//获取图形信息 var option = chartView.getChartObject().getOptions(); var series = option.series[0] // 设置markline series.markLine.data[0].yAxis=avg; } |
5、实现效果:sheet2中根据sheet1中计算出来的平均值绘制markLine