无法弄清楚如何将输入文件更改为静态文件夹文件

时间:2018-11-08 22:35:19

标签: javascript html5 xlsx xls

我这里有一个“被盗”代码,我想将输入扇区更改为服务器上我的文件夹中的文件,而无需先上传文件。问题是我在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 :(得分:1)

您的问题令人困惑,但是这里是如何使用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();

答案 1 :(得分:0)

Thx @高个子。只为我的其他新手。完整的代码是。

<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>
相关问题