2016-05-03 5 views
0

下記のコードスニペットを使用して、javascriptでxlsxファイルをインポートしています。このコードは正常に動作しており、xlsxをインポートできます。追加の変更addEventListenerとして、私が(選択)を選択するたびに、ファイルイベントがトリガーされ、ファイルをインポートしています。Javascriptでxlsxファイルをインポートしているときに、Javascriptイベントを手動で強制実行するにはどうすればよいですか?

<input type="file" name="xlfile" id="xlf" /> 
<br /> 
<input type="button" id="import" value="Import" /> 
//some other javascript code 


    var xlf = document.getElementById('xlf'); 
    function handleFile(e) { 
    var files = e.target.files; 
    var f = files[0]; 
    { 
    var reader = new FileReader(); 
    var name = f.name; 
    reader.onload = function(e) { 
    var data = e.target.result; 
    var wb; 
    wb = X.read(data, {type: 'binary'}); 
    process_wb(wb); 
    }; 
    if(rABS) reader.readAsBinaryString(f); 
    else reader.readAsArrayBuffer(f); 
} 

}

if(xlf.addEventListener) xlf.addEventListener('change', handleFile, false); 

しかし、私は、私は、私はこの場合

var import= document.getElementById('import'); 
if(import.addEventListener) import.addEventListener('click', handleFile, false); 

と上記の行を置き換えている輸入button.ForをクリックしたときにファイルをインポートしたいですhandleFile(e)メソッドの中で入力ファイルを取得できません。

+0

_「インポートボタンをクリックするたびにファイルをインポートしたい」_「ファイルをインポートする」とはどういう意味ですか? 'input type =" button "要素をクリックすると、ユーザファイルシステムからファイルを要求しようとしていますか? – guest271314

+0

@ guest271314はい、私はインポートボタンをクリックしてファイルを取得しようとしています、私はjakubからanwserを持っています、ありがとうございます –

答えて

0

変数名 'import'は予約語です。変数名を変更してみてください。

+0

ありがとうemjaksa –

0

xlf変数から選択したファイルにアクセスできます。

var xlf = document.getElementById('xlf'); 
function handleFile(e) { 
    var files = xlf.files; 
    var f = files[0]; 
    var reader = new FileReader(); 
    var name = f.name; 
    reader.onload = function(e) { 
    var data = e.target.result; 
    var wb; 
    wb = X.read(data, {type: 'binary'}); 
    process_wb(wb); 
    }; 
    if(rABS) 
    reader.readAsBinaryString(f); 
    else 
    reader.readAsArrayBuffer(f); 
} 

「インポート」変数の名前も変更してください。インポートは予約語で、モジュールのロードに使用されます(ES2015に新機能が追加されました)。

var importButton = document.getElementById('import'); 
if (importButton.addEventListener) 
    importButton.addEventListener('click', handleFile, false); 
+0

これは私がvarファイル= xlf.filesが必要な行です。ありがとうJakub、それは完全に動作しています。 –

関連する問題