Не могу понять, как изменить входной файл в файл статической папки - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть «украденный» код, который я хочу изменить в качестве входного сектора на файл в моей папке на сервере без предварительной загрузки файла. Проблема в том, что я немного плох в javascript, чтобы понять, как изменить код для этого. Спасибо за любую помощь.

<script src="jquery-2.1.4.min.js"></script>
<script lang="javascript" src="xlsx.full.min.js"></script>


<input type="file" id="input-excel" src="test.xslx"/>
<div id="wrapper">
</div>

<script>
  $('#input-excel').change(function(e){
  reader.readAsArrayBuffer(e.target.files[0]);
            reader.onload = function(e) {
                    var data = new Uint8Array(reader.result);
                    var wb = XLSX.read(data,{type:'array'});
                    //var htmlstr = XLSX.write(wb,{sheet:"Kondensatoren", type:'binary',bookType:'html'});
                    var htmlstr = XLSX.write(wb,{sheet:"Tabelle1", type:'binary',bookType:'html'});
                    $('#wrapper')[0].innerHTML += htmlstr;
            }
    });
</script>

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Thx @Tallboy. Просто для других новичков, как я. Полный код:

<script src="jquery-2.1.4.min.js"></script>
<script lang="javascript" src="xlsx.full.min.js"></script>
<div id="wrapper"></div>

<script>
  var oReq = new XMLHttpRequest();
  oReq.open("GET", "test.xlsx", true);
  oReq.responseType = "arraybuffer";

  oReq.onload = function(oEvent) {
    var arrayBuffer = oReq.response;
    var data = new Uint8Array(arrayBuffer);
    var wb = XLSX.read(data,{type:'array'});
    var htmlstr = XLSX.write(wb,{sheet:"Kondensatoren", type:'binary',bookType:'html'});
    $('#wrapper')[0].innerHTML += htmlstr;
  };
  oReq.send();
</script>
0 голосов
/ 09 ноября 2018

Ваш вопрос сбивает с толку, но здесь показано, как использовать AJAX для запроса файла на вашем сервере без необходимости загрузки файла пользователем.

Что вы делаете с этим, все еще зависит от вас.

Я заметил, что это xslx-файл, который не так просто анализировать, как CSV, поэтому для вашего ajax-запроса вам потребуется проанализировать двоичный файл.

var oReq = new XMLHttpRequest();
oReq.open("GET", "test.xslx", true);
oReq.responseType = "arraybuffer";

oReq.onload = function(oEvent) {
  var arrayBuffer = oReq.response;

  // if you want to access the bytes:
  var byteArray = new Uint8Array(arrayBuffer);
  // ...

  // create a new blob (change type to whatever)
  var blob = new Blob(arrayBuffer, {type: "image/png"});

  // whatever...
};

oReq.send();
...