I have an XLSX full of data and I need to store each row in an object (I just need a few columns). I'm using SheetJS js-xlsx
Here is my code:
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;
}
}
This code is obviously wrong because it reads column to column instead of row to row. I'm trying to figure out a way to do it I need objects like this:
obj1 = {
c: (C1)
d: (D1)}
obj2 = {
c: (C2)
d: (D2)}
Solved using:
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
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.