2016-11-18 6 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ファイルを解析する方法](0120-17753-1) –

+0

これらの回答はありません/機能します。私は答えとして受け入れられたものを試しました、そして、私はエラー 'Bolb'を得ています。 –

答えて

1

xlsxは内部的にxlsxファイルで、xlsxとして結合されたファイルのグループです.zipで開いていることを確認すると、xlsxファイルの内容をより正確に見ることができます。

XLSX内部的には_

rels 
docProps 
xl 
[content_types].xml 

は、したがって、これらのファイルは、内部的な関係に依存した作業[ZIPで開か]されます。 xlsxファイルをテキストファイルとして読むことは、決して良い方法ではありません。 Apache poi libraryを使用して読むことができる他の方法があります。 あなたが&は、バックエンドでのファイルを扱う得ることができます

$('#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) 
      } 
     }) 

}) 

、あなたがファイルをアップロードするための のXMLHttpRequestいるFormDataを使用することができます...

0

をありがとうit.Andを試してみてください。

関連する問題