如何导出CSV JS / JQ以在新选项卡中打开?

时间:2018-01-16 01:18:37

标签: javascript jquery

我有一个网站,我们已经构建了一些报告功能,并希望让JS / JQ将报告打开到一个新选项卡中。

   ;(function($) {

    $.Oscampus.statistics.setPagination('student');

    $('#student-list').on('click', function(evt) {
        evt.preventDefault();
        evt.stopPropagation();
        $.Oscampus.statistics.load('students');
    });

    $(".hasTooltip").tooltip({"html": true, "container": "body"})


})(jQuery);

========================

function exportTableToCSV(filename) {
var csv = [];
var rows = document.querySelectorAll("table tr");

for (var i = 0; i < rows.length; i++) {
    var row = [], cols = rows[i].querySelectorAll("td, th");

    for (var j = 0; j < cols.length; j++) 
        row.push('"' + cols[j].innerText.replace('"', '\\"') + '"');

    csv.push(row.join(",")); 

}

// Download CSV file
downloadCSV(csv.join("\n"), filename);
}

===================

    var csvFile;
var downloadLink;

// CSV file
csvFile = new Blob([csv], {type: "text/csv"});

// Download link
downloadLink = document.createElement("a");

// File name
downloadLink.download = filename;

// Create a link to the file
downloadLink.href = window.URL.createObjectURL(csvFile);

// Hide download link
downloadLink.style.display = "none";

// Add the link to DOM
document.body.appendChild(downloadLink);

// Click download link
downloadLink.click();
}

上面的代码效果很好,但是对于这个不起眼的开发人员来说,确定将_blank的var包含在哪里是很困难的。请帮忙!

2 个答案:

答案 0 :(得分:0)

downloadLink.target = '_blank';

相信这应该可以解决问题

答案 1 :(得分:0)

您要将报告打开到新标签中进行下载或显示吗? 如果你想下载,试试这个:

exportTableToCSV('filename.csv');

function exportTableToCSV(filename) {
    var csv = [];
    var rows = document.querySelectorAll("table tr");

    for (var i = 0; i < rows.length; i++) {
        var row = [],
            cols = rows[i].querySelectorAll("td, th");

        for (var j = 0; j < cols.length; j++)
            row.push('"' + cols[j].innerText.replace('"', '\\"') + '"');

        csv.push(row.join(","));

    }

    // Download CSV file
    downloadCSV(csv.join("\n"), filename);
}

function downloadCSV(csv, filename) {

    var csvFile;
    var downloadLink;
    var targetWind = window.open();

    // CSV file
    csvFile = new Blob([csv], { type: "text/csv" });

    // Download link
    downloadLink = targetWind.document.createElement("a");

    // File name
    downloadLink.download = filename;

    // Create a link to the file
    downloadLink.href = targetWind.URL.createObjectURL(csvFile);

    // Hide download link
    downloadLink.style.display = "none";

    // Add the link to DOM
    targetWind.document.body.appendChild(downloadLink);

    // Click download link
    downloadLink.click();
}