导出到CSV文件分隔符问题

时间:2015-08-20 08:18:16

标签: javascript jquery html csv

我遇到导出csv的问题。问题是:1)我必须将html表导出到csv文件。我可以将csv文件的分隔符更改为分号之类的其他内容。如果表中的值在逗号分隔的同一列下,则在csv表中显示在不同的列中。例如在代码中:“Apple,Banana,Mango”我希望它在同一列中。 2)我的代码不适用于IE,它只适用于mozilla 3)我也希望用户保存csv文件。现在它会自动保存。请找我的代码。任何机构都可以帮助解决任何问题。

小提琴链接:https://jsfiddle.net/anbffh8p/4/

CodeHTML:

      <div><a href="#" class="export">Export Table data into Excel</a></div>

代码JS:

    function exportTableToCSV(filename) {
alert('inside');

 var csvData = [];
 var tmpArr = [];

           csvData.push("mechanical" + "," + "in process" + "," + "M00001" + "," + "A" + "," + "Test" + "," + "Xyz" + "," + "Apple,Banana,Mango");

            csvData.push(tmpArr.join('\n')); 
            // printObject(tmpArr);

        alert('before this');
            var output = csvData.join('\n');
         csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(output);

    $(this)
        .attr({
        'download': filename,
            'href': csvData,
            'target': '_blank'

    });

    alert('done');
}


$(".export").on('click', function (event) {
    // CSV
    exportTableToCSV.apply(this,['export.csv']);
    });

1 个答案:

答案 0 :(得分:1)

总结:如果可以,请使用服务器端代码,而不是javascript将csv文件发送给用户。

  

我必须将html表导出到csv文件。

你有服务器端代码吗?什么是首先产生表格? PHP / C#-Asp净MVC?这在服务器上会容易得多。

您基本上创建了一个包含所有数据的url - 网址具有最大长度(取决于浏览器,但通常为&lt; 2000字符),因此仅用于少量数据。

  

我可以将csv文件的分隔符更改为分号之类的其他内容。

是。你自己没有编写代码吗?

 csvData.push("mechanical" + "," + "in process" + "," + "M00001" + "," + "A" + "," + "Test" + "," + "Xyz" + "," + "Apple,Banana,Mango");

最简单的改变(但我通常使用var作为分隔符):

csvData.push("mechanical" + ";" + "in process" + ";" + "M00001" + ";" + "A" + ";" + "Test" + ";" + "Xyz" + ";" + "Apple,Banana,Mango");
  

如果表中的值在逗号分隔的同一列下,则在csv表中它显示在不同的列中。

这是对CSV文件工作方式的误解。它们不只是line.split("'")

基本上,在您的单元格周围放置双引号,例如:

Test,Xyz,"Apple,Banana,Mango"

获取引号,使用双引号,例如:

Test,"in ""quotes""",xyz
  

我的代码不适用于IE,它只适用于mozilla   [和铬]

您使用网址功能指定下载:&#34;数据:application / csv&#34; (而不是&#34; href:...&#34;) - 这将由不同的浏览器以不同的方式处理。

  

它会自动保存

浏览器功能/最终用户特定选项。 FF / GC通常自动保存到下载而不是提示保存。