我需要将一个Javascript图表(HighCharts)导出为Excel文件;该图表渲染在一个div中,但Excel不能渲染javascript生成的html+css内容,只能呈现没有样式的文本。
解决方案是将渲染图表的位置转换成图像(jpeg),但我一直没有成功......
谢谢!
我需要将一个Javascript图表(HighCharts)导出为Excel文件;该图表渲染在一个div中,但Excel不能渲染javascript生成的html+css内容,只能呈现没有样式的文本。
解决方案是将渲染图表的位置转换成图像(jpeg),但我一直没有成功......
谢谢!
https://www.funfun.io/1/#/edit/5a61c190404f66229bda3f0f
在这个例子中,我使用了Highchart demo中的图表,并用我的数据替换了它。 我将我的数据存储在嵌入式电子表格中,而由于一个json文件,我可以在我的javascript代码中使用它。{
"data": "=A1:E16"
}
我会将它以正确的格式存储在我的script.js文件中,这样我就可以直接在Highcharts中加载它(对于数字,您必须将数据转换为浮点数或整数):
var data = [];
for (var i = 1; i < $internal.data.length; i++)
data.push(
{
x: parseFloat($internal.data[i][2]),
y: parseFloat($internal.data[i][3]),
z: parseFloat($internal.data[i][4]),
name: $internal.data[i][1],
country: $internal.data[i][0]
}
);
选择完图表的所有选项后,您可以添加数据:
series: [{
data: data
}]
如果您对图表满意,可以通过在Funfun add-in中粘贴URL将其直接加载到Excel中。以下是我的示例:
当然,您可以使用除Highcharts之外的其他库,例如charts.js和D3.js等强大的数据可视化库。exporting : {
url: 'http://mydomain.com/export.php'
}
我知道已经有点晚了,但我遇到了同样的问题,而jsfiddle 帮助我从 Highchart 创建 Excel。 添加到导出菜单中的下载 CSV选项正常工作。 下面是代码:
/**
* A small plugin for getting the CSV of a categorized chart
*/
(function (Highcharts) {
// Options
var itemDelimiter = ',', // use ';' for direct import to Excel
lineDelimiter = '\n';
var each = Highcharts.each;
Highcharts.Chart.prototype.getCSV = function () {
var xAxis = this.xAxis[0],
columns = [],
line,
csv = "",
row,
col;
if (xAxis.categories) {
columns.push(xAxis.categories);
columns[0].unshift("");
}
each (this.series, function (series) {
columns.push(series.yData);
columns[columns.length - 1].unshift(series.name);
});
// Transform the columns to CSV
for (row = 0; row < columns[0].length; row++) {
line = [];
for (col = 0; col < columns.length; col++) {
line.push(columns[col][row]);
}
csv += line.join(itemDelimiter) + lineDelimiter;
}
return csv;
};
}(Highcharts));
// Now we want to add "Download CSV" to the exporting menu. We post the CSV
// to a simple PHP script that returns it with a content-type header as a
// downloadable file.
// The source code for the PHP script can be viewed at
// https://raw.github.com/highslide-software/highcharts.com/master/studies/csv-export/csv.php
Highcharts.getOptions().exporting.buttons.contextButton.menuItems.push({
text: 'Download CSV',
onclick: function () {
Highcharts.post('http://www.highcharts.com/studies/csv-export/csv.php', {
csv: this.getCSV()
});
}
});
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
});
$('#getcsv').click(function () {
alert(chart.getCSV());
});