如何在使用 js-xlxs 解析 xlxs 时设置范围(行和列)
How to set range(row and column) while parsing xlxs with js-xlxs
我正在使用js-xlxs解析xlsx。
var url = "test.xlsx";
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.responseType = "arraybuffer";
oReq.onload = function(e) {
var arraybuffer = oReq.response;
/* convert data to binary string */
var data = new Uint8Array(arraybuffer);
var arr = new Array();
for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
var bstr = arr.join("");
/* Call XLSX */
var workbook = XLSX.read(bstr, {type:"binary"});
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function(y) { /* iterate through sheets */
var worksheet = workbook.Sheets[y];
for (z in worksheet) {
/* all keys that do not begin with "!" correspond to cell addresses */
if(z[0] === '!') continue;
console.log(y + "!" + z + "=" + JSON.stringify(worksheet[z].v));
}
});
}
oReq.send();
这对我来说工作正常。 我可以遍历每个单元格,但需要在 XLSX 中解析特定范围,例如从行:A160-Q160 和列:160-202
我在文档中阅读了范围但没有得到它,如何与我的示例设置相同
我这样做了,如下所示。它现在为我工作
function handleFile(e) {
if(!window.FileReader) {
console.log("Browser doesn't support FileReader");
return;
}
var files = e.target.files, i, f,
rowRange = ["A"],//xls column array
/*setting range in xlsx, to parse and get with in range*/
lowerRangeRow = 160,//xls rows lower range
upperRangeRow = 202,//xls rows upper range
row1;
for (i = 0, f = files[i]; i != files.length; ++i) {
var reader = new FileReader();
var name = f.name;
reader.onload = function(e) {
var data = e.target.result;
var workbook = XLSX.read(data, {type: 'binary'});
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function(y) { /* iterate through sheets */
var worksheet = workbook.Sheets[y];
for (z in worksheet){
/* all keys that do not begin with "!" correspond to cell addresses */
if(z[0] === '!') continue;
row1 = z.replace(/[^0-9]/g, '');
if(rowRange.indexOf(z.charAt(0)) > -1 && (row1>=lowerRangeRow && row1<=upperRangeRow)){
//console.log(worksheet[z].v.trim());
li = document.createElement("li");
li.appendChild(document.createTextNode(worksheet[z].v.trim()));
document.getElementById("xlsxDataList").appendChild(li);
}
}
});
};
reader.readAsBinaryString(f);
}
}
document.getElementById("file").addEventListener('change', handleFile, false);
相关文章:
- HTML范围:动态设置值属性
- Jpgraph:如何手动设置X轴和Y轴的范围
- 在Materialize Calendar中设置年份范围
- 如何设置范围元素'的拇指
- 将外部控制器的范围变量设置为角度
- AngularJS:从指令设置范围变量
- 需要将变量设置为特定的数字范围
- 如何在node.js中设置mysql连接,以在带无符号整数的算术上抛出超出范围的错误
- 我可以设置这个吗'某事'在该服务中动态创建的嵌套对象中的服务?(可能是范围问题)
- d3.js&nvd3.js——如何设置y轴范围
- 使用范围滑块设置时间
- 使用JS检查用户是否在EST时区和设置的EST时间范围内
- 使用 AngularJS 从指令设置范围变量
- 为Highcharts中的柱形图设置最小默认范围
- 在另一个范围中设置的间隔的Javascript clearInterval
- JS:增量计数器,不在全局范围内设置计数器变量
- 正在将日期范围选取器的开始日期设置为空
- 范围设置后启动svg动画-svg
- HighStock -在不使用range选择器的情况下将范围设置为超过2小时
- 将回调的范围设置为执行回调的位置