【问题标题】:how to download csv with fusion charts in codeigniter如何在codeigniter中下载带有融合图表的csv
【发布时间】:2013-09-06 13:05:19
【问题描述】:

我一直在尝试下面的函数来生成 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 时触发警报。因此,当它是 csv 时,else 条件将不会执行。我错过了什么吗?
  • if(type ==='CSV') 因为chartObj.exportChart({ exportAtClient: '1', exportFormat: type, exportAction: 'download' }); 如果我将其用于 CSV 则会出错
  • exportChart 和 getDataAsCSV 是完全不同的方法,用于不同的目的。read
  • 不知何故 exportChart 无法使用 CSV,任何想法为什么会这样
  • 这是因为导出是针对图像或 PDF 格式的。 CSV 不是导出格式,它只是从图表中获取数据作为 CSV 字符串。

标签: csv fusioncharts


【解决方案1】:

您可以通过对 CSV 字符串进行编码并使用 createElement 锚标记对象的下载方法将 CSV 导出为可下载文件。请参阅下面的代码,这是对您的实现的轻微修改。

查看我的jsFiddle,它使用 FusionCharts V 3.3.1

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?");
    }
}

【讨论】:

  • 非常感谢,它确实节省了很多时间。
【解决方案2】:

尼西康特,

FusionCharts 不支持将 CSV 数据作为可下载选项,因为它支持导出图像/pdf。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多