在Excel文件中按顺序保存HTML表数据

时间:2017-09-22 12:07:47

标签: javascript arrays excel javascript-events

我正在将HTML表格数据转换为 Excel CSV 文件,我正在使用以下代码

<script>

    function downloadCSV(csv, 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();
    }



    function exportTableToCSV(filename) {
        var csv = [];
        var rows = document.querySelectorAll("#faqs 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);
    }

</script>

问题是当这个脚本生成excel表时,它的格式不正确。

从图像中可以看到问题列包含逗号,的文本,因此逗号正在解决问题。并且所有excel字段都不是我想要的格式。我想在列表中列出与列相关的所有数据,但问题列会使脚本混乱。

按钮:

  <button onclick="exportTableToCSV('faqs.csv')"> Export CSV</button>

由于

Data in excel

1 个答案:

答案 0 :(得分:0)

  for (columnCounter = 0; columnCounter < totalColumns; columnCounter++) {
    // quote each column in order to escape any commas
    row.push('"' + cols[columnCounter].innerText + '"');
  }

https://jsbin.com/zepabey/edit?html,console,output