在JavaScript中读取本地xls/xlsx文件

7

我们能否在不使用任何库的情况下,在angularjs / Javascript中读取大型本地xls / xlsx文件?如果不能,那么哪个库最适合?

2个回答

3
请使用此代码来阅读。
 <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>

你从哪里获取XLSX对象?这是一个库吗?如果是的话,能否请你更新你的帖子以显示它是什么,以及你从哪里得到它?同时,看到你如何将其包含在此代码块中会很有帮助。谢谢! - Nathan

2

https://github.com/SheetJS/js-xlsx 目前是更好的库。但是在我的使用中,xlsx文件无法读取,而且早于2003年版本的Excel文件也有问题。但是在官方文档中写道,它是支持的。但可能只是我遇到了这个问题。 我还使用此功能从Excel获取json:

var roa = XLSX.utils.sheet_to_row_object_array(worksheet);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接