我已经尝试阅读excel文件来遵循下面的教程。http://code.psjinx.com/xlsx.js/但我无法读取excel文件,因为在以下突出显示的行中存在未定义的情况...我已经在IE11中尝试过了。
var reader = new FileReader();
reader.onload = function(e) {
var data = e.target.result;
var workbook = XLSX.read(data, {
type: 'binary'
});
obj.sheets = XLSXReader.utils.parseWorkbook(workbook, readCells, toJSON);
handler(obj);
}
**reader.readAsBinaryString(file)**;
发布于 2014-12-22 16:35:34
如果您要从服务器加载xlsx文件,下面的答案将进行说明。对于上传,还有另一个代码。
选项1:这是一个在Alasql库中工作的过程:
请参见文件:15utility.js和84from.js示例
readBinaryFile(filename,true,function(a){
var workbook = X.read(data,{type:'binary'});
// do what you need with parsed xlsx
});
// Read Binary reading procedure
// path - path to the file
// asy - true - async / false - sync
var readBinaryFile = utils.loadBinaryFile = function(path, asy, success, error) {
if(typeof exports == 'object') {
// For Node.js
var fs = require('fs');
var data = fs.readFileSync(path);
var arr = new Array();
for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
success(arr.join(""));
} else {
// For browser
var xhr = new XMLHttpRequest();
xhr.open("GET", path, asy); // Async
xhr.responseType = "arraybuffer";
xhr.onload = function() {
var data = new Uint8Array(xhr.response);
var arr = new Array();
for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
success(arr.join(""));
};
xhr.send();
};
};
选项2:您可以使用Alasql库本身,这可能是更简单的选择。
alasql('SELECT * FROM XLSX("myfile.xlsx",{headers:true,sheetid:"Sheet2",range:"A1:D100"})',
[],function(data) {
console.log(res);
});
请参阅此处(simple Excel reading demo)或此处(d3.js demo from Excel)的示例。
https://stackoverflow.com/questions/27523406
复制相似问题