title: Invalid header signature parsing XLSX with JavaScript library
body: <p>I'm trying to create an excel parser using these to js libraries and code snippet found here : <a href="https://stackoverflow.com/questions/8238407/how-to-parse-excel-file-in-javascript-html5">How to parse Excel file in Javascript/HTML5</a></p>
  
  <p>It uses the following 2 js libraries:</p>
  
  <p><a href="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js" rel="nofollow noreferrer">https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js</a></p>
  
  <p><a href="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js" rel="nofollow noreferrer">https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js</a></p>
  
  <p>However when I try to upload any xlsx files I get an invalid header error:
  I'm using a Mac and Google Chrome and have confirmed the files are real xlsx files (created new one just to test).</p>
  
  <pre><code>xlsx.js:1660 Uncaught Header Signature: Expected d0cf11e0a1b11ae1 saw       504b030414000600CheckField 
  @ xlsx.js:1660check_get_mver 
  @ xlsx.js:986parse 
  @ xlsx.js:898readSync 
  @ xlsx.js:1212reader.onload 
  @ uploadfile.js:140
  </code></pre>
  
  <p>Is there any way to work around this or perhaps I am doing something wrong? I am just starting using javascript/doing front end stuff. I am a java developer and this language kind of boggles my mind.</p>
  
  <p>The code I am using is:</p>
  
  <pre><code>&lt;!DOCTYPE html&gt;
  &lt;html lang="en"&gt;
  &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;Parse Excel&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
  Hello World!
  &lt;div id="content"&gt;
      &lt;input type="file" id="input" /&gt;
  &lt;/div&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js"&gt;&lt;/script&gt;
  
  &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js"&gt;&lt;/script&gt;
  
  &lt;script&gt;
      var filebutton = document.getElementById("input");
      filebutton.addEventListener("change", filePicked, false);
  
  
       function filePicked(oEvent) {
  
      // Get The File From The Input
      var oFile = oEvent.target.files[0];
      var sFilename = oFile.name;
      // Create A File Reader HTML5
      var reader = new FileReader();
  
      // Ready The Event For When A File Gets Selected
      reader.onload = function(e) {
          var data = e.target.result;
          var cfb = XLSX.CFB.read(data, {type: 'binary'});
          var wb = XLSX.parse_xlscfb(cfb);
          // Loop Over Each Sheet
          wb.SheetNames.forEach(function(sheetName) {
              // Obtain The Current Row As CSV
              var sCSV = XLSX.utils.make_csv(wb.Sheets[sheetName]);
              var oJS = XLSX.utils.sheet_to_row_object_array(wb.Sheets[sheetName]);
  
              $("#my_file_output").html(sCSV);
              console.log(oJS)
          });
      };
  
      // Tell JS To Start Reading The File.. You could delay this if desired
      reader.readAsBinaryString(oFile);
  }
  </code></pre>