javascript - 从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)}
解决方案
使用解决:
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
}
}
推荐阅读
- kubernetes - k8s 权限被拒绝问题
- html - 为什么我的表单没有在屏幕中央对齐?
- c - 使用蒙特卡罗方法估计 Pi 的值
- php - 从设备获取 OSC 响应
- cypress - 赛普拉斯 - SecurityError:无法枚举“存储”的属性
- react-select - 如何在 Typescript 中使用 isMilti 实现 AsynSelect?#反应选择
- python - 如何针对数据框中的嵌套列表评估“任何”条件?
- apache - httpd 2.4.48-1 是否需要 brotli 或 libbrotli 包?
- centos - 保持“MariaDB 数据库服务器”存活
- javascript - 处理字符串中相同出现的字符