Javascript 在javascript中读取本地xls/xlsx文件

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/29465930/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 03:24:15  来源:igfitidea点击:

Read local xls/xlsx file in javascript

javascriptangularjsxlsxlsx

提问by Tushar Thakur

Can we read large local xls/xlsx file in angularjs/Javascript without using any liabrary, if not then which is most suitable library?

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

回答by Vinoth

use this code to read

使用此代码阅读

 <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>

回答by Vitaliy Andrusishyn

https://github.com/SheetJS/js-xlsxis better liabrary at this time. But in my way files xlsx - are not reading, and files older then 2003 version of Excel also has trouble. But in official docs write then it is supported. But maybe just I have this trouble. I also use this feature for get json from excel:

https://github.com/SheetJS/js-xlsx 此时是更好的库。但是以我的方式文件 xlsx - 无法读取,并且 2003 版 Excel 之前的文件也有问题。但是在官方文档中写然后它被支持。但也许只是我有这个麻烦。我也使用此功能从 excel 获取 json:

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