Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript XLSX填充:“;错误:Can';找不到中心目录的结尾:这是zip文件吗?";-棱角分明 XLSX填充:“错误:找不到中心目录的结尾:这是zip文件吗?”-在_Javascript_Angular_Xlsx - Fatal编程技术网

Javascript XLSX填充:“;错误:Can';找不到中心目录的结尾:这是zip文件吗?";-棱角分明 XLSX填充:“错误:找不到中心目录的结尾:这是zip文件吗?”-在

Javascript XLSX填充:“;错误:Can';找不到中心目录的结尾:这是zip文件吗?";-棱角分明 XLSX填充:“错误:找不到中心目录的结尾:这是zip文件吗?”-在,javascript,angular,xlsx,Javascript,Angular,Xlsx,在使用XSLX填充时,Angular抛出了一个错误,这让我很为难 错误: 我的代码包含在Templates.XSLX文件的读取器中,然后使用Firecloud数据库中的数据进行填充 代码: 我已经尝试将文件存储到其他地方,但多次尝试后都没有成功。根据文档xmlhttp.open(“GET”,filepath,true)应该是xmlhttp.open(“GET”,serverfilepath,true)

在使用XSLX填充时,Angular抛出了一个错误,这让我很为难

错误: 我的代码包含在Templates.XSLX文件的读取器中,然后使用Firecloud数据库中的数据进行填充

代码:
我已经尝试将文件存储到其他地方,但多次尝试后都没有成功。

根据文档
xmlhttp.open(“GET”,filepath,true)
应该是
xmlhttp.open(“GET”,serverfilepath,true)var-oReq=new-XMLHttpRequest();open(“POST”,“stash.php”,true)它使用GET和xmlhttp参数中的文件路径正常工作。我认为使用页面将文件返回到XLSX函数是一种更糟糕的解决方法。但是在其他地方维护这些文件并在需要时获取它们会很有帮助,我正在考虑使用firebase的存储。那么你的意思是这些是下载而不是真正的上传?我将建议您使用表单数据进行上传,我已经使用并知道的示例是有效的。但是,如果您从服务器获取模板,我不确定发生了什么。我在问题部分遗漏了什么?是的,它们是下载。很抱歉我目前正在尝试使用Firebase存储来获取这些文件,但没有成功。
main.c8862013051d6e746aa1.js:1 ERROR Error: Uncaught (in promise): Error: Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html
Error: Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html
    at u.readEndOfCentral (main.c8862013051d6e746aa1.js:1)
    at u.load (main.c8862013051d6e746aa1.js:1)
    at main.c8862013051d6e746aa1.js:1
    at e.invoke (polyfills.f6ae3e8b63939c618130.js:1)
    at Object.onInvoke (main.c8862013051d6e746aa1.js:1)
    at e.invoke (polyfills.f6ae3e8b63939c618130.js:1)
    at t.run (polyfills.f6ae3e8b63939c618130.js:1)
    at polyfills.f6ae3e8b63939c618130.js:1
    at e.invokeTask (polyfills.f6ae3e8b63939c618130.js:1)
    at Object.onInvokeTask (main.c8862013051d6e746aa1.js:1)
    at j (polyfills.f6ae3e8b63939c618130.js:1)
    at j (polyfills.f6ae3e8b63939c618130.js:1)
    at polyfills.f6ae3e8b63939c618130.js:1
    at e.invokeTask (polyfills.f6ae3e8b63939c618130.js:1)
    at Object.onInvokeTask (main.c8862013051d6e746aa1.js:1)
    at e.invokeTask (polyfills.f6ae3e8b63939c618130.js:1)
    at t.runTask (polyfills.f6ae3e8b63939c618130.js:1)
    at d (polyfills.f6ae3e8b63939c618130.js:1)
    at t.invokeTask [as invoke] (polyfills.f6ae3e8b63939c618130.js:1)
    at _ (polyfills.f6ae3e8b63939c618130.js:1)
exportData() {
    var selectedCert = this.selection.selected;
    var filepath = "";
    var xmlhttp = new XMLHttpRequest();
   
    switch (selectedCert.map((data => data.IDTipo)).toString()) {
        case "R101180813F":
          filepath = "src/app/preciso-explorer/templates/preciso-medidor-pressao.xlsx";
          break;
        case "R05150707I-3":
          filepath = "src/app/preciso-explorer/templates/preciso-termohigrometro3.xlsx";
          break;
        case "R100180915F":
          filepath = "src/app/preciso-explorer/templates/preciso-vidraria-graduada.xlsx";
          break;
        case "R101181123A":
          filepath = "src/app/preciso-explorer/templates/preciso-medidor-pressao102.xlsx";
          break;
      }
      xmlhttp.open("GET", filepath, true);
      xmlhttp.responseType = "arraybuffer";
      xmlhttp.onreadystatechange = function () {
        console.log("xmlHttp: stateChange ok");
        if (xmlhttp.readyState === 4) {
          console.log("xmlHttp: State 4 ok");
          if (xmlhttp.status === 200) {
            console.log("xmlHttp: Status 200 ok");
          
            XLSX.fromDataAsync(xmlhttp.response).then(workbook => {
              console.log("dataAsync ok");
              if (selectedCert != null) {
                var id = (selectedCert.map(data => data["ID"]).toString());
                switch (selectedCert.map((data => data.IDTipo)).toString()) {
                  case "R101180813F": [...]