页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

问题:

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

  • 无标签