лист js изменения в таблице игнорируются - PullRequest
0 голосов
/ 03 августа 2020

Я использую лист JS для получения файла Excel по ссылке и редактирования в браузере, а затем попытки сохранить его. Мне удалось его получить, но когда я использовал функцию sheet_to_html и установил editable в значение true, я заметил, что внесенные мной изменения не сохраняются. Я использовал функцию table_to_book, чтобы проанализировать данные HTML в книге, и когда я записал результаты в консоль, данные вместо этого сохраняют свое исходное значение.

my JS и HTML код для получения и отображения в HTML:

function fetchData() {
    var req = new XMLHttpRequest();
    req.open('GET', myUrl, true);
    req.responseType = 'arraybuffer';
    
    req.onload = function(event) {
      let arraybuffer = req.response;
      /* convert data to binary string */
      let data = new Uint8Array(arraybuffer);
      let arr = new Array();
      for(let i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
      let bstr = arr.join("");
      
      /* Call XLSX */
      let workbook = XLSX.read(bstr, {type:"binary"});
      console.log(workbook);
      var o = XLSX.utils.sheet_to_html(workbook.Sheets[workbook.SheetNames[0]], {editable:true}).replace("<table", '<table id="data-table" border="1"')
      document.getElementById('data-table').outerHTML = o;
    }

    req.send();
  }
  
function saveFile(){
    var tbl = document.getElementById('data-table');
    var saved_wb = XLSX.utils.table_to_book(tbl);
    console.log(saved_wb);
}
<table id="data-table">
</table>

<input type="submit" value="Fetch" onclick="fetchData()">
<input type="submit" value="Save" onclick="saveFile()">

Это известная ошибка в листе JS? Или мне здесь не хватает чего-то важного?

...