使用 Javascript 导出到 CSV

kri*_*elp 6 javascript csv download

我有两个功能

  1. 导出 HTML 表
  2. 下载 CSV 文件

不幸的是,我的文件下载为“未定义”,没有 .csv 文件类型。

该格式似乎很好,因为该文件可以使用任何文本编辑器打开,并且可以看到所有表数据都以逗号作为分隔符。这使得 Excel 可以轻松地获取文件并分隔每一列和行。

但我需要下载带有 .csv 文件扩展名的文件。

这是我的两个功能:

function exportTableToCSV(html, 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);
        }
        csv.push(row.join(","));
    }

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

function downloadCSV(csv, filename) {
   	    var csvFile;
	var downloadLink;

	csvFile = new Blob([csv], {type:"text/csv"});
	downloadLink = document.createElement("a");
	downloadLink.download = filename;
	downloadLink.href = window.URL.createObjectURL(csvFile);
	downloadLink.style.display = "none";
	document.body.appendChild(downloadLink);
	downloadLink.click();
}

exportTableToCSV('', 'test.csv');
Run Code Online (Sandbox Code Playgroud)

我认为问题在于“function downloadCSV”。非常感谢任何帮助或一些当前工作示例的链接。

小智 4

您是否将文件名传递给exportTableToCSV,例如:

exportTableToCSV(null,'test.csv')
Run Code Online (Sandbox Code Playgroud)

请参阅https://jsfiddle.net/mdearman/d1zpndcu/

在一些快速测试中,它可以在 Chrome 中运行,但不能在 IE 中运行(就其价值而言)。