我一直在尝试下面的功能生成CSV下载,但我看到的是我只能在alert
获取CSV数据。
function ExportMyChart(type) {
var chartObj = getChartFromId('myChartIdAmount4');
if( chartObj.hasRendered() ){
if(type === 'CSV'){
alert(chartObj.getDataAsCSV());
}else{
chartObj.exportChart({ exportAtClient: '1', exportFormat: type, exportAction: 'download' });
}
}
}
chartObj.exportChart
不适用于CSV,有什么方法可以让它适用于CSV,因为它适用于PDF,JPEG?我将不胜感激任何帮助。谢谢。
您可以通过编码CSV字符串并使用createElement锚标记对象的下载方法将CSV导出为可下载文件。请参阅下面的代码,该代码稍微修改了您的实现。
请参阅我使用FusionCharts V 3.3.1的jsFiddle
var exportMyChart = function (type) {
var chartObj = FusionCharts('myChartIdAmount4');
if (chartObj.hasRendered()) {
if(type === 'CSV'){
var a = document.createElement('a');
a.href = 'data:attachment/csv,' + encodeURIComponent(chartObj.getDataAsCSV());
a.target = '_blank';
a.download = 'export.csv';
document.body.appendChild(a);
a.click();
}
else{
chartObj.exportChart({ exportAtClient: '1', exportFormat: type, exportAction: 'download' });
}
}
else{
alert("What are you trying to export?");
}
}
Nishikant,
FusionCharts不支持CSV数据作为可下载选项,也不支持导出images / pdf。
因此,不是在警报窗口中显示CSV,而是将其存储在变量中,然后您可以将其发送到服务器端处理程序(您必须创建它),这将把它作为CSV文件返回。