首页 > 解决方案 > 从js中的xlsx文件中读取整行

问题描述

我有一个充满数据的 XLSX,我需要将每一行存储在一个对象中(我只需要几列)。我正在使用 SheetJS js-xlsx

这是我的代码:

var workbook = XLSX.read(fileXLSX.getContents(), {type: 'base64'});
for (var sn in workbook.SheetNames) {
    var sheet = workbook.Sheets[workbook.SheetNames[sn]];
    for (var z in sheet) {
        var obj = {};
        switch (z.toString()[0]) {
            case 'C':
                obj.c = sheet[z].v;
                break;
            case 'D':
                obj.d = sheet[z].v;
                break;
        }
}

这段代码显然是错误的,因为它是逐列而不是逐行读取的。我正在想办法做到这一点我需要这样的对象:

obj1 = {
c: (C1)
d: (D1)}

obj2 = {
c: (C2)
d: (D2)}

标签: javascriptxlsxecmascript-5

解决方案


使用解决:

    for (var sn in workbook.SheetNames) {
        var sheet = workbook.Sheets[workbook.SheetNames[sn]];
        var range = XLSX.utils.decode_range(sheet['!ref']);
        for (var rowNum = range.s.r; rowNum <= range.e.r; rowNum++) {

            //column c
            var c = sheet[XLSX.utils.encode_cell({r: rowNum, c: 2})];
            //column d
            var d = sheet[XLSX.utils.encode_cell({r: rowNum, c: 3})];

            // get data using c.v or d.v
        }
    }

推荐阅读