XLSX解析器用于解析excel [英] XLSX parser for parsing excel
本文介绍了XLSX解析器用于解析excel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图解析xlsx文件并将其保存为表格(沿着 Excel到JSON的JavaScript代码?这是正常工作的XLS文件)。但是,我无法转换为json并以表格形式显示。请在代码片段下面找到。任何人都可以请指导如何关闭这个。
function filePicked(oEvent){
// Get The File From输入
var oFile = oEvent.target.files [0];
var sFilename = oFile.name;
//创建文件读取器HTML5
var reader = new FileReader();
//准备好当文件获取选定
时的事件reader.onload = function(e){
var data = e.target.result;
var cfb = XLSX.read(data,{type:'binary'});
var wb = XLSX.parse_xlscfb(cfb);
wb.SheetNames.forEach(function(sheetName){
//获取当前行为CSV
// var sCSV = XLSX.utils.make_csv(wb.Sheets [sheetName]);
var data = XLSX.utils.make_json(wb.Sheets [sheetName],{header:1});
alert(data.length);
// var columns = data [0 ] .split(,);
$ .each(data,function(indexR,valueR){
var sRow =< tr>;
$ .each(data [ indexR],函数(indexC,valueC){
sRow = sRow +< td>+ valueC +< / td>;
});
sRow = sRow + < / tr>;
$(#my_file_output)。append(sRow);
});
});
};
//告诉JS开始读取文件..如果需要可以延迟这个
reader.readAsBinaryString(oFile);
}
解决方案 div>
使用以下代码:
注意:使用 jszip.js
和 xlsx.js
库
reader.onload = function(evt){debugger; var data = evt.target.result; // var xlsx = XLSX.read(data,{type:'binary'}); var arr = String.fromCharCode.apply(null,new Uint8Array(data)); var xlsx = XLSX.read(btoa(arr),{type:'base64'});结果= xlsx.Strings; result = {}; xlsx.SheetNames.forEach(function(sheetName){var rObjArr = XLSX.utils.sheet_to_row_object_array(xlsx.Sheets [sheetName]); if(rObjArr.length> 0){result [sheetName] = rObjArr;}});返回结果; // that.b64toBlob(xlsx,binary);}; reader.readAsArrayBuffer(file);
使用 readAsArrayBuffer
方法,它将支持所有浏览器。
I am trying to parse xlsx file and save as a table (Along the lines of Excel to JSON javascript code? which is working fine for xls files). However, I am unable to convert to json and display as a table. Please find below the code snippet. Can anyone please guide how to close on this.
function filePicked(oEvent) {
// Get The File From The Input
var oFile = oEvent.target.files[0];
var sFilename = oFile.name;
// Create A File Reader HTML5
var reader = new FileReader();
// Ready The Event For When A File Gets Selected
reader.onload = function(e) {
var data = e.target.result;
var cfb = XLSX.read(data, {type: 'binary'});
var wb = XLSX.parse_xlscfb(cfb);
wb.SheetNames.forEach(function(sheetName) {
// Obtain The Current Row As CSV
//var sCSV = XLSX.utils.make_csv(wb.Sheets[sheetName]);
var data = XLSX.utils.make_json(wb.Sheets[sheetName], {header:1});
alert(data.length);
//var columns = data[0].split(",");
$.each(data, function( indexR, valueR ) {
var sRow = "<tr>";
$.each(data[indexR], function( indexC, valueC ) {
sRow = sRow + "<td>" + valueC + "</td>";
});
sRow = sRow + "</tr>";
$("#my_file_output").append(sRow);
});
});
};
// Tell JS To Start Reading The File.. You could delay this if desired
reader.readAsBinaryString(oFile);
}
解决方案
use this code :
note: use jszip.js
and xlsx.js
library
reader.onload = function(evt) {
debugger;
var data = evt.target.result;
//var xlsx = XLSX.read(data, {type: 'binary'});
var arr = String.fromCharCode.apply(null, new Uint8Array(data));
var xlsx = XLSX.read(btoa(arr), {
type: 'base64'
});
result = xlsx.Strings;
result = {};
xlsx.SheetNames.forEach(function(sheetName) {
var rObjArr = XLSX.utils.sheet_to_row_object_array(xlsx.Sheets[sheetName]);
if (rObjArr.length > 0) {
result[sheetName] = rObjArr;
}
});
return result;
// that.b64toBlob(xlsx, "binary");
};
reader.readAsArrayBuffer(file);
use readAsArrayBuffer
method which will support on all browser.
这篇关于XLSX解析器用于解析excel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文