【发布时间】:2015-06-10 12:50:51
【问题描述】:
我们可以在不使用任何库的情况下在 angularjs/Javascript 中读取大型本地 xls/xlsx 文件,如果不能,那么哪个是最合适的库?
【问题讨论】:
标签: javascript angularjs xls xlsx
我们可以在不使用任何库的情况下在 angularjs/Javascript 中读取大型本地 xls/xlsx 文件,如果不能,那么哪个是最合适的库?
【问题讨论】:
标签: javascript angularjs xls xlsx
使用此代码阅读
<script>
/* set up XMLHttpRequest */
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"});
/* DO SOMETHING WITH workbook HERE */
var first_sheet_name = workbook.SheetNames[0];
/* Get worksheet */
var worksheet = workbook.Sheets[first_sheet_name];
console.log(XLSX.utils.sheet_to_json(worksheet,{raw:true}));
}
oReq.send();
</script>
【讨论】:
https://github.com/SheetJS/js-xlsx 在这个时候是更好的图书馆。但是以我的方式文件 xlsx - 没有读取,并且比 2003 版本的 Excel 更早的文件也有问题。但是在官方文档中,它是受支持的。但也许只是我有这个麻烦。 我也使用此功能从 excel 中获取 json:
var roa = XLSX.utils.sheet_to_row_object_array(worksheet);
【讨论】: