Заполните XLSX: «Ошибка: не удается найти конец центрального каталога: это zip-файл?»- в угловых - PullRequest
0 голосов
/ 10 декабря 2018

Заполнение XLSX: «Ошибка: не удается найти конец центрального каталога: это zip-файл?»- в Angular

Мне трудно из-за ошибки, генерируемой Angular при использовании XSLX Populate.

Ошибка:

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)

Мой код состоит вЧитатель для файлов шаблонов .XSLX, а затем заполняет их данными из базы данных Firecloud.

Код:

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": [...]

Я уже пытался хранить файлы где-то еще, но безуспешно после нескольких попыток.

...