2017-08-23 6 views
0

Ich habe eine Excel-Datei, die ich mit js-xlsx lesen. Der Code funktioniert einwandfrei, außer wenn die Zellen leer sind. Diese Zellen werden ignoriert. Wie bekomme ich diese Zellen auch beim Erstellen meines JSON-Objekts?nicht in der Lage, leere Zellen zu lesen Excel-Datei mit js-xlsx lesen

Ich ging einige der Frage auf SO sowie einige andere Foren für das gleiche Problem, aber nichts befriedigend.

Jede Hilfe wäre willkommen. Mein Code ist:

reader.addEventListener('load', function(){ 
     var data = this.result; 
     var wb = XLSX.read(data, {type: 'binary', sheetStubs:true}); 
     // console.log(headers); 

     wb.SheetNames.forEach(function(sheetName){ 
      //pulling out column headers for tablecreation 
      var headers = get_header_row(wb.Sheets[sheetName]); 
      createTableInDB(headers); 
      // Here is your object 
      var XL_row_object = XLSX.utils.sheet_to_json(wb.Sheets[sheetName]); 
      //console.log(XL_row_object); 

      for(var i=0; i<XL_row_object.length; i++){ 
       var json_object = XL_row_object[i]; 

       if(json_object !== null){ 
        var dataobject = { 
         "tablename": tname, 
         "dbname": dbname, 
         "info": json_object, 
         "uname": uname 
        } 

        dataobject = $.toJSON(dataobject); 

        $.ajax({ 
         type: "POST", 
         url: "insertIntoTable.php", 
         async: false, 
         data:"pInsertData=" + dataobject, 
         success: function(msg){ 

          console.log(msg); 

         } 
        }); 
        //console.log(json_object); 

       } 

      } 
     }); 
    }); 

    reader.readAsBinaryString(document.querySelector('input').files[0]); 

Die Datei wird über eine Eingabe in HTML hochgeladen. Dank im Voraus

Antwort

0

Lösung 1 .Condition "wenn (h === undefined) fortfahren;" in "xlsx.core.min.js" kommentieren Sie es aus.

oder tun Sie es richtig ...

Lösung 2. Durch Übergabe von Condition extra param beim Ausführen dieser XLSX.utils.sheet_to_json (wb.Sheets [name], {blankCell: false}). Fügen Sie eine Bedingung in der Zeilennr. 19150 "if (defval === undefined & & blankCell) fortfahren;" in Datei xlsx.js etc ..

Verwandte Themen