如何使用JavaScript解析和遍历Excel工作表文件中的所有行
我试图解析和读取Excel工作表中的每个单元格;似乎我正在解析文件,但我无法遍历每个单元格并显示它们 我正在使用以下代码:如何使用JavaScript解析和遍历Excel工作表文件中的所有行,javascript,sheetjs,Javascript,Sheetjs,我试图解析和读取Excel工作表中的每个单元格;似乎我正在解析文件,但我无法遍历每个单元格并显示它们 我正在使用以下代码: var workbook = XLSX.read('datasets/persons.xlsx', { type: 'binary' }); var sheet_name_list = workbook.SheetNames; // console.log(sheet_name_list); sheet_name_list.forEach
var workbook = XLSX.read('datasets/persons.xlsx', { type: 'binary' });
var sheet_name_list = workbook.SheetNames;
// console.log(sheet_name_list);
sheet_name_list.forEach(function (y) { /* iterate through sheets */
//Convert the cell value to Json
console.log(y);
var roa = XLSX.utils.sheet_to_json(workbook.Sheets[y]);
console.log(roa);
if (roa.length > 0) {
result = roa;
}
});
当我试图打印console.log(roa)
时,我得到了一个空数组,你知道我应该如何遍历文件中的每个单元格吗?你可以使用
XLSX.utils.sheet\u to\u row\u object\u数组(workbook.Sheets[y])
解析excel文件中的每个单元格
下面是使用JavaScript和JQuery显示Excel工作表文件的完整代码
function handleFile(e) {
//alert(e);
var exceljsonObj = [];
var files = e.target.files;
var i, f;
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 result;
var workbook = XLSX.read(data, { type: 'binary' });
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function (y) { /* iterate through sheets */
//var exceljsonObj = [];
var rowObject = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[y]);
exceljsonObj = rowObject;
for(var i=0;i<exceljsonObj.length;i++){
//var recordcount = exceljsonObj.length;
var data = exceljsonObj[i];
$('#myTable tbody:last-child').append("<tr><td>"+data.ID+"</td><td>"+data.Name+"</td><td>"+data.Months+"</td></tr>");
}
//alert(exceljsonObj.length);
$('#alermessage').each(function() {
//this points to item
alert('Record Count is '+exceljsonObj.length);
});
});
};
reader.readAsArrayBuffer(f);
}
}
$(document).ready(function(){
$('#files').change(handleFile);
});
函数句柄文件(e){
//警报(e);
var exceljsonObj=[];
var files=e.target.files;
变量i,f;
对于(i=0,f=files[i];i!=files.length;++i){
var reader=new FileReader();
var name=f.name;
reader.onload=函数(e){
var数据=e.target.result;
var结果;
var workbook=XLSX.read(数据,{type:'binary'});
var sheet_name_list=workbook.SheetNames;
sheet_name_list.forEach(函数(y){/*遍历工作表*/
//var exceljsonObj=[];
var rowObject=XLSX.utils.sheet_到_row_object_数组(workbook.Sheets[y]);
exceljsonObj=rowObject;
对于(var i=0;我的意思是readFile
,而不是read
?我可以使用readFile吗?我使用read(),有什么区别吗?看起来您正在向read
传递一个文件名。我正在将文件路径传递到read()。是的,尝试使用readFile
。