【问题标题】:not able to download complete CSV data无法下载完整的 CSV 数据
【发布时间】:2020-08-05 06:10:53
【问题描述】:

我正在尝试使用 Javascript 下载一些 CSV 数据。我有大约 600 700 条记录,但只有 18-20 条记录被下载。这就是我目前正在做的事情

 console.log("CSV data", results.data);

                   var hiddenElement = document.createElement('a');
                    hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(results.data);
                    hiddenElement.target = '_blank';
                    hiddenElement.download = 'users.csv';
                    hiddenElement.click();

在控制台中,我可以查看所有数据,但 users.csv 文件只有 18-20 条记录。

高度赞赏任何潜在客户

【问题讨论】:

    标签: javascript angularjs export-to-csv


    【解决方案1】:

    在这种情况下,我会使用 xlsx 并像这样保存 npm 模块:

    // IMPORT
    const XLSX = require("xlsx");
    
    // INIT
    var wb = XLSX.utils.book_new();
    wb.Props = {
        Title: "Template",
        Subject: "Test",
        Author: "CRUD DS Excel",
        CreatedDate: new Date()
    };
    wb.SheetNames.push("First Sheet");
    
    // ARRAY OF ARRAYS.
    var allTitles = [[]];
    
    // SET FIRST ROW AS THE HEADER.
    allTitles[0] = ["Name", "Email", "Age"];
    
    // INSERT SUBSEQUENT ROWS OF DATA.
    records.forEach(record=>{
        allTitles.push([record.Name, record.Email, record.Age])
    })
    
    // CONVERT TO XLSX AND FORMAT THE DATA ACCORDINGLY
    wb.Sheets["First Sheet"] = XLSX.utils.aoa_to_sheet(allTitles);
    var wbout = XLSX.write(wb, {bookType:'xlsx',  type: 'binary'});
    var buf = new ArrayBuffer(wbout.length); 
    var view = new Uint8Array(buf);  
    for (var i=0; i<wbout.length; i++) {
        view[i] = wbout.charCodeAt(i) & 0xFF;
    } 
    
    // SAVE
    saveAs(new Blob([buf],{type:"application/octet-stream"}), "admins-template.xlsx");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多