Чтение локального файла xls / xlsx в javascript

можем ли мы читать большой локальный файл xls/xlsx в angularjs/Javascript без использования каких-либо liabrary, если нет, то какая наиболее подходящая библиотека?

3 ответов


в поисках этого я нашел это:

основные Парсеры, реализованные в pure JS:

http://oss.sheetjs.com/js-xls/ (XLS файлы, что вы хотели)

http://oss.sheetjs.com/js-xlsx/ (файлы XLSX/XLSM/XLSB)

Я ссылка как анализировать файл Excel в Javascript / HTML5

https://gist.github.com/psjinx/8002786

надеюсь, что это может быть полезный.


https://github.com/SheetJS/js-xlsx лучше liabrary в это время. Но на моем пути файлы xlsx-не читаются, а файлы старше 2003 версии Excel также имеют проблемы. Но в официальных документах пишут, что тогда это поддерживается. Но, может быть, просто у меня есть эта проблема. Я также использую эту функцию для получения json из excel:

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

используйте этот код, чтобы прочитать

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