Highcharts在散点图CSV/XLS出口缺少的信息

Highcharts在散点图CSV/XLS出口缺少的信息

问题描述:

当导出散点图/气泡图表数据作为CSV或XLS,它缺少关键信息,参见例如:http://jsfiddle.net/11fum86u/Highcharts在散点图CSV/XLS出口缺少的信息

这是数据(提取物):

series: [{ 
    data: [ 
     { x: 95, y: 95, z: 13.8, name: 'BE', country: 'Belgium' }, 

与轴标题是在提示(但也许需要在别处定义):

tooltip: { 
    pointFormat: '<tr><th colspan="2"><h3>{point.country}</h3></th></tr>' + 
     '<tr><th>Fat intake:</th><td>{point.x}g</td></tr>' + 
     '<tr><th>Sugar intake:</th><td>{point.y}g</td></tr>' + 
     '<tr><th>Obesity (adults):</th><td>{point.z}%</td></tr>', 

什么是默认的导出缺少的是(我)标签˚F或y和z轴,和(ii)气泡的名称(在本例中为国家代码/名称)

我想知道如何将这些信息添加到导出中。

实际上气泡图中没有z轴。这很混乱,因为所有点都有z属性。这个属性用来计算气泡的大小,所以不需要额外的轴,因为所有东西都在2d中。在三维图表中使用了zAxis

请参阅本带电作业例如:http://jsfiddle.net/kkulig/udtr0emL/

您可以处理第一行标签通过columnHeaderFormatterhttp://api.highcharts.com/highcharts/exporting.csv.columnHeaderFormatter):

exporting: { 
    csv: { 
     columnHeaderFormatter: function(item, key, keyLength) { 
     if (item.axisTitle) { 
      return item.axisTitle.textStr; // x axis label 
     } else if (key === 'y') { 
      return item.yAxis.axisTitle.textStr; // y axis label 
     } else if (key === 'z') { 
      return 'Obesity (adults)'; // z axis label 
     } 
     } 
    } 
    } 

要添加另一列(国家)添加以下代码段在这三个核心功能中:

1. Highcharts.Chart.prototype.getDataRows

// add original point reference 
rows[key].point = point; 

2. Highcharts.Chart.prototype.getCSV

// Add point name and header 
    csv += itemDelimiter; 
    var point = row['point']; 
    if (point) { 
    csv += point.name 
    } else { 
    csv += "Country" 
    } 

3. Highcharts.Chart.prototype.getTable(对于XLS)

var point = row['point'], 
    val; 
    if (point) { 
    val = point.name; 
    } else { 
    val = "Country"; 
    } 

    html += '<' + tag + ' class="text">' + 
    (val === undefined ? '' : val) + '</' + tag + '>'; 

所有功能可在export-data.src.js这个目录中找到:https://github.com/highcharts/highcharts/tree/b4b4221b19a3a50d9ed613b6f50b12f0afcc7d06/js/modules

+0

太棒了,正是我所需要的,非常感谢。有没有办法在XLS导出中添加额外的列? – Fred

+0

@Kamil此更改将反映核心功能,因此导出条形图/柱形图时,国家名称将被列出两次。对? –

+0

@RohanKumar,它取决于你的数据是怎样的。无论数据的其他部分如何,此代码都会添加另一列。 –