Javascript/JQuery Ajax 下载文件, 通过jQuery.Ajax下载文件, jquery $.get download csv, Download CSV file through ajax post

 

Javascript/JQuery Ajax 下载文件, 通过jQuery.Ajax下载文件, jquery $.get download csv, Download CSV file through ajax post
Javascript/JQuery Ajax 下载文件, 通过jQuery.Ajax下载文件, jquery $.get download csv, Download CSV file through ajax post

 

我只是想在这里为将来的人们添加一些代码,因为我试图将 JSON 导出到 CSV 文档并下载它。

我个人用 $.get

$.get('{{ url('/newsletter/download') }}', $formdata, function(data)
{
    // console.log(data);

    var items = jQuery.parseJSON(data);
    const replacer = (key, value) => value === null ? '' : value; // specify how you want to handle null values here
    const header = Object.keys(items[0]);
    let csv = items.map(row => header.map(fieldName => JSON.stringify(row[fieldName], replacer)).join(','));
    csv.unshift(header.join(','));
    csv = csv.join('\r\n');

    //Download the file as CSV
    var downloadLink = document.createElement("a");
    var blob = new Blob(["\ufeff", csv]);
    var url = URL.createObjectURL(blob);
    downloadLink.href = url;
    downloadLink.download = "Recipients.csv";  //Name the file here
    document.body.appendChild(downloadLink);
    downloadLink.click();
    document.body.removeChild(downloadLink);
})

 

/newsletter/download

return json_encode($php_array);

 

上面的代码是下面代码的变体,只是多加了一句

var items = jQuery.parseJSON(data);

 

我曾经$.getJSON从外部页面提取 json 数据,但如果你有一个基本数组,你可以使用它。

这使用代码来创建 csv 数据。

$(document).ready(function() {
    var JSONData = $.getJSON("GetJsonData.php", function(data) {
        var items = data;
        const replacer = (key, value) => value === null ? '' : value; // specify how you want to handle null values here
        const header = Object.keys(items[0]);
        let csv = items.map(row => header.map(fieldName => JSON.stringify(row[fieldName], replacer)).join(','));
        csv.unshift(header.join(','));
        csv = csv.join('\r\n');

        //Download the file as CSV
        var downloadLink = document.createElement("a");
        var blob = new Blob(["\ufeff", csv]);
        var url = URL.createObjectURL(blob);
        downloadLink.href = url;
        downloadLink.download = "DataDump.csv";  //Name the file here
        document.body.appendChild(downloadLink);
        downloadLink.click();
        document.body.removeChild(downloadLink);
    });
});

 

编辑:值得注意的是,JSON.stringify将通过添加\". 如果您在 excel 中查看 CSV,它不喜欢将其作为转义字符。

您可以添加.replace(/\\"/g, '""')到末尾JSON.stringify(row[fieldName], replacer)以在 excel 中正确显示(这将替换\"""excel 喜欢的内容)。

全线:let csv = items.map(row => header.map(fieldName => (JSON.stringify(row[fieldName], replacer).replace(/\\"/g, '""'))).join(','));

 

更多参考:https://stackoverflow.com/questions/8847766/how-to-convert-json-to-csv-format-and-store-in-a-variable

 

本文:Javascript/JQuery Ajax 下载文件, 通过jQuery.Ajax下载文件, jquery $.get download csv, Download CSV file through ajax post

 

 

 

Add a Comment

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.