如何在codeigniter中下载带有融合图表的csv

问题描述 投票:2回答:2

我一直在尝试下面的功能生成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 fusioncharts
2个回答
2
投票

您可以通过编码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?");
    }
}

0
投票

Nishikant,

FusionCharts不支持CSV数据作为可下载选项,也不支持导出images / pdf。

因此,不是在警报窗口中显示CSV,而是将其存储在变量中,然后您可以将其发送到服务器端处理程序(您必须创建它),这将把它作为CSV文件返回。

© www.soinside.com 2019 - 2024. All rights reserved.