2016-07-27 5 views
-2

私のオリジナルの質問はフィードバックに基づいていませんでした。 Papa解析でCSVを読み取る別の方法があるかどうかを確認しようとしています。純粋なJavascriptでCSVを解析する方法

私の現在のコード:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<script src="./papaparse.min.js"></script> 

<script> 
    var data; 

// Target first (and only) file selected 
    function handleFileSelect(evt) { 
    var file = evt.target.files[0]; 

// Parse the file 
    Papa.parse(file, { 
     header: true, 
     download: true, 
     dynamicTyping: true, 
     complete: function(results) { 
     data = results; 
     console.log(data); 
     } 
    }); 
    } 

// Run handleFileSelect function when document is ready 
    $(document).ready(function(){ 
    $("#testCsv").change(handleFileSelect); 
    }); 
</script> 

<!--File button to upload file--> 
<input type="file" id="testCsv" name="files"/> 

編集:どうやら私はダウン投票に基づいていくつかのより多くの研究を行う必要があります。申し訳ありませんが、このような新しいものです。私の次の試み:エラーを返します

var data; 

function parseCSV(file) { 
    Papa.parse(file, { 
     header: true, 
     download: true, 
     dynamicTyping: true, 
     complete: function(results) { 
      data = results; 
      console.log(results); // results appear in dev console 
     } 
    }); 
} 
parseCSV(document.getElementById("testCSV").files[0]); 

は:

ReferenceError: document is not defined 

は、より多くの研究を行います。

+2

このコードでjQueryを使用するのは、変更ハンドラを要素にアタッチする部分だけです。したがって、イベントハンドラの追加が "純粋な" JSでどのように行われているかを研究してください。 – CBroe

+0

* "... with pure Javascript" * jQueryの使用については何もありませんが、JavaScriptの純度には関係ありません。ライブラリなしでこれを行う場合は、DOM APIを使用してライブラリを作成する方法があります。 jQueryとDOM APIの両方のバージョンは「純粋な」JavaScriptです。 –

+0

まあ、明らかに私はJQueryについて何も理解しておらず、さらに研究を行う必要があります。まだ非常にWeb devの新しい、応答のおかげで。 – FF5Ninja

答えて

2

jQueryはまったく使用されていません。 jQueryを使用しているのは、コードを実行する前にDOMがロードされるまで待ってからイベントハンドラに接続することだけです。

スクリプトタグをHTMLの最後に移動することで、最初の(待機中)、閉じる</body>タグの直前に行うことができます。

あなたはaddEventListenerを使用して、任意の漠然と近代的なブラウザ上の第2の操作を行うことができます。あなたは自分自身を足枷addEventListener、またはより近代的なブラウザを持っていないIE8のような時代遅れのブラウザをサポートする必要がある場合

document.getElementById("testCsv").addEventListener("change", handleFileSelect, false); 

をし、 (IE9-IE11)のように振る舞います。this answerには、addEventListenerまたは古いMS特有のattachEventのいずれかを使用するための機能があります。

-2

独自の解析機能を作成します。 この関数は入力文字列(CSVの内容)を取得し、 '、'文字/文字列に分割します。

最初の行を読み取ります(末尾まで&キャリッジリターン)。これはあなたのコラムです。 他のすべての行があなたのデータです。

意味がありますか?

+0

これは非常に混乱して書かれていますが、この質問は 'Papa.parse'機能を使用しないように依頼しているようです。 *(私のDVDではない)* –

+0

そのCVSファイルは、OPからのセパレータ(ウィンドウ内のespacially)として '、'文字を使用する必要は特にありませんが、 "純粋な" javascriptを持つ独自の関数小さなjQueryの部分を取り除く。 – empiric

+0

私の理解では、CSVはカンマで区切られています。これは窓でどのように違うのですか? – AlvinfromDiaspar

関連する問題