当前位置: 首页 > 知识库问答 >
问题:

二维数组导出到CSV,数据不显示在CSV中,Javascript

仉宪
2023-03-14

csv文件可以正确下载,但里面什么都没有。我希望每个新条目在导出之前在不同的行上。不确定为什么数据没有在CSV中注册,我在这一点上没有得到任何错误。谢谢你的帮助。这是一个chrome扩展。

var items = []
var rows = []

function myFunction() {
    items.push(document.getElementById('itemid').value);
    items.push(document.getElementById('itemid1').value);
    items.push(document.getElementById('itemid2').value);
    items.push(document.getElementById('itemid3').value);
    console.log(items);
    const arrayToMatrix = (array, columns) => Array(Math.ceil(array.length / columns)).fill('').reduce((acc, cur, index) => {
        return [...acc, [...array].splice(index * columns, columns)]
    }, []);
    const result = arrayToMatrix(items, 4);
    var rows = result;
    console.log(rows);}

document.getElementById('my-Function').onclick = myFunction;

function exportData() {
    let csvContent = "data:text/csv;charset=utf-8,";

    rows.forEach(function(rowArray) {
        let row = rowArray.join(",");
        csvContent += dataString + "\n";
    });
    var encodedUri = encodeURI(csvContent);
    var link = document.createElement("a");
    link.setAttribute("href", encodedUri);
    link.setAttribute("download", "my_data.csv");
    document.body.appendChild(link);
    link.click();}

document.getElementById('export-Data').onclick = exportData;



Array after user input:

Array(4)
0: (4) ["ROW1", "ROW1", "ROW1", "ROW1"]
1: (4) ["ROW2", "ROW2", "ROW2", "ROW2"]
2: (4) ["ROW3", "ROW3", "ROW3", "ROW3"]
3: (4) ["ROW4", "ROW4", "ROW4", "ROW4"]

我在下面的相关帖子中尝试了所有不同的答案,但似乎没有一个在CSV中注册我的数据:

function exportData() {
    rows.forEach(function (infoArray, index) {
        var row = infoArray.join(",");
        rows.push(index == 0 ? "data:text/csv;charset=utf-8," + line : line);
    });
    var csvContent = rows.join("\n");
    var encodedUri = encodeURI(csvContent); ....
function exportData() {
    var csvContent = '';
    rows.forEach(function(infoArray, index) {
        dataString = infoArray.join(';');
        csvContent += index < rows.length ? dataString + '\n' : dataString;
    });
    var encodedUri = encodeURI(csvContent);
});

我也尝试了以上问题的所有其他可能的答案。我很感激你的帮助!谢谢!!

共有1个答案

缑勇锐
2023-03-14

这最终对我有效。

'use strict';

var items = []
var rows = []
var cols = []

function myFunction() {
    items.push(document.getElementById('itemid').value);
    items.push(document.getElementById('itemid1').value);
    items.push(document.getElementById('itemid2').value);
    items.push(document.getElementById('itemid3').value);
    console.log(items);
    const arrayToMatrix = (array, columns) => Array(Math.ceil(array.length / columns)).fill('').reduce((acc, cur, index) => {
        return [...acc, [...array].splice(index * columns, columns)]
    }, []);
    const result = arrayToMatrix(items, 7);
    rows = result;
    console.log(rows);}

document.getElementById('my-Function').onclick = myFunction;

function exportData() {
    cols.push(rows);
    console.log(cols);
    let csvContent = "data:text/csv;charset=utf-8," 
        + rows.map(e => e.join(",")).join("\n");

    var encodedUri = encodeURI(csvContent);
    var link = document.createElement("a");
    link.setAttribute("href", encodedUri);
    link.setAttribute("download", "my_data.csv");
    document.body.appendChild(link);
    link.click();}

document.getElementById('export-Data').onclick = exportData;

 类似资料:
  • 我有一个独立的H2服务器,正在收集数据。为了进行测试,我希望将数据从服务器中提取到CSV文件中。有什么工具吗?

  • 我有一个脚本可以将一整串CSV输出到文件夹C:\scripts\csv。这个特定的脚本循环了所有的数据流,并计算了数据集中前100个单词的使用情况。前100个单词及其计数被添加到一个列表中,数据流被串联,然后csv应该导出。打印包含正确的信息,但脚本不输出任何文件。

  • 我关注了这篇文章:如何将JavaScript数组信息导出到csv(在客户端)?将嵌套js数组写入csv文件。 该数组如下所示:

  • 问题内容: 我正在尝试将一系列产品转换为CSV文件,但似乎没有计划。CSV文件是一长行,这是我的代码: 此外,标头不会强制下载。我一直在复制并粘贴输出并保存为.csv 编辑 解决的问题: 如果有人在寻找相同的东西,请找到更好的方法: 问题答案: 与其写出值,不如考虑使用。 这样可以立即解决您的问题。

  • 我是一个CPLEX用户,我需要将CSV文件中的数组数据转换为C++2D映射作为优化问题的输入。数据以列的形式显示。也就是说,如果我们考虑3行(AA1、AA2、AA3)和3列(BB1、BB2、BB3)及其各自的值,它们在CSV文件中的格式如下: 行、COL、值 AA1,BB1,0.3 AA2,BB1,0.5 AA1,BB2,0.6 AA1,BB3,0.7 AA2,BB2,0.9 AA3,BB2,0.

  • 问题内容: 我想通过php将MYSQL数据导出到Excel / CSV。这样我以后可以使用我的数据库,或者有人可以使用和理解它。 问题答案: 我想这就是你要找的 您可以通过检查以下地址来创建自己的文件:http : //www.programmingfacts.com/export-mysql-data-into- excelcsv-via-php/ 我不能在这里添加工作代码,这是错误的= / 但