简体   繁体   English

如何使用Javascript将数据从网站导出到csv文件?

[英]How to export data from website to csv file using Javascript?

I saw this code from a website and apparently it works on other people even for my friend but not for me. 我从一个网站上看到了这个代码,显然它甚至对我的朋友也适用于其他人,但不适合我。 I am using Nodejs and express. 我正在使用Nodejs并表达。 Am i doing it wrongly or did i miss out any important parts? 我错误地做错了还是错过了任何重要的部分? After the button was clicked, that was no pop out of the file directory or anything and there is no error to be seen as well. 单击按钮后,没有弹出文件目录或任何内容,也没有错误。

This are the codes from the script. 这是脚本中的代码。

<script>
        function downloadCSV(csv, filename) {
            var csvFile;
            var downloadLink;
            //var charset = "UTF-8";

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

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

            // file name
            downloadLink.download = filename;

            // create link to file
            downloadLink.href = window.URL.createObjectURL(csvFile);

            // hide download link
            downloadLink.style.display = "";

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

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

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

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

                for (var j=0; j<cols.length; j++) {
                    if (j == 7) {
                        row.push("'" + cols[j].innerText + "'");
                    } 
                    else if (j == 2){
                        row.push("'" + cols[j].innerText + "'");
                    } 
                    else {
                        row.push(cols[j].innerText);
                    }
                }

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

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

        }
    </script>

This are the codes from the design part. 这是设计部分的代码。

  <button type="button" class="btn btn-primary" id="exportBtn" onclick="exportData(null,'scrapedData.csv')">导出</button>

This minimal example is working 这个最小的例子正在运作

  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 link to file downloadLink.href = window.URL.createObjectURL(csvFile); // hide download link downloadLink.style.display = ""; // add link to DOM document.body.appendChild(downloadLink); // click download link downloadLink.click(); } function exportData(html,filename) { var csv = []; csv.push('a'); csv.push('b'); csv.push('c'); csv.push('d'); csv.push('e'); // download csv file downloadCSV(csv.join("\\n"), filename); } 
 <button onClick="exportData(null, 'testCSV.csv')">download</button> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM