2016-11-18 113 views
0

我一直在爲文本文件上傳頁面,現在我想上傳excel文件。我目前的代碼給我奇怪的輸出。我認爲有些東西是錯的,因爲我的函數是爲文本文件構建的,現在我不得不修改某些內容來讀取excel文件。這裏是我的文件閱讀器代碼:如何在Javascript中上傳excel文件或將excel轉換爲文本文件?

function fileSubmit(){ 
    var fileExist = $('#fileUpload')[0]; 
    var fileName = $('#fileUpload').val().split('\\').pop(); 

    if(fileName && fileExist){ 
     var reader = new FileReader(); 
     var file = fileExist.files[0]; 

     reader.onload = function(e) { 
      var text = reader.result.split(/\r\n|\n/);     
      var columnNames = text.shift().split('\t'); 
      alert(columnNames); 
     } 
     reader.readAsText(file, 'UTF-8'); 
    } 
} 

我報警輸出看起來是這樣的:

PK!b�h^�[Content_Types].xml �(����N�0E�H�C�-Jܲ@5��*Q>�ēƪc[�ii����B�j7���{2��h�nm���ƻR����U^7/���%��rZY�@1__�f��q��R4D�AJ�h>����V�ƹ�Z�9����NV�8ʩ����ji){^��- 

我要輸出我的專欄的名字,因爲我必須做驗證的每一行中文件。讓.xsl.xsls文件起作用的最佳方法是什麼?我發現了很多xls和xlxs javascript庫的例子,但是當我試圖實現很多原因時,它們都沒有工作。我想知道是否有所有瀏覽器支持的東西,或者這不應該在JavaScript中完成?謝謝。

+1

一個excel文件不僅僅是一個標準的文本文件,並且不能被讀取。有一些編碼應用於文件 - 這是垃圾輸出的原因。 –

+3

[如何在Javascript/HTML5中解析Excel文件]可能的重複(http://stackoverflow.com/questions/8238407/how-to-parse-excel-file-in-javascript-html5) –

+0

這些答案都不是/功能工作。我嘗試了一個被接受爲答案的答案,並且出現錯誤'Bolb'。 –

回答

1

xlsx是內部xml文件,它們是組合在一起的一組文件,它們組合爲xlsx。要檢查它是否打開zip,並且可以更好地查看xlsx文件的構成。

XLSX內部的[開始與ZIP]

_

rels 
docProps 
xl 
[content_types].xml 

所以這些文件內部工作有依賴關係。 將xlsx文件作爲文本文件讀取絕不是一個好習慣。 還有其他方法可以使用Apache poi庫來閱讀它。 嘗試it.And謝謝...

0

您可以使用XMLHttpRequest的FORMDATA上傳文件,

$('#input-file').change(function() { 

     var url = '/back-end-url'; 
     var form_data = new FormData(); 
     var xhr = new XMLHttpRequest(); 

     $.each(this.files, function (key, value) { 
      form_data.append('file', value) 
     }) 

     xhr.open('POST', url, true) 
     xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest") 
     xhr.send(form_data) 

     xhr.onreadystatechange(function() { 
      if(xhr.readyState == XMLHttpRequest.DONE) { 
       var res = JSON.parse(xhr.responseText) 
      } 
     }) 

}) 

你可以得到&處理在後端文件。

相關問題