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/
您可以处理第一行标签通过columnHeaderFormatter
(http://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
太棒了,正是我所需要的,非常感谢。有没有办法在XLS导出中添加额外的列? – Fred
@Kamil此更改将反映核心功能,因此导出条形图/柱形图时,国家名称将被列出两次。对? –
@RohanKumar,它取决于你的数据是怎样的。无论数据的其他部分如何,此代码都会添加另一列。 –