HOME

{ セル内改行 CSV データを配列 ( Array ) へ変換 } javascript

{ svg, javascript で作成したプログラム一覧 }

推奨 ブラウザ : chrome

セル内改行 CSV データを Array 配列へ変換
{ CSV データ }

{ 実行結果 }

CSV データを Array 配列へ変換します。
str.getCSVArray(',') の第一引数に String で区切り文字指定。 半角スペースを指定することは出来ません。 囲み文字は、セル単位で、シングル、ダブルクォーテーションが混在していても処理できると思います。 囲み文字が連続している場合、最初と最後を一つだけ削除します。 囲み文字列前後の半角スペース、タブは、削除します。 囲み文字内であれば、改行が含まれていても、一つのセルの値として取得出来ると思います。
結果はコンソールへ出力されます。

最近は、 javascript にある色々な型のデータを Array 配列へ変換する
プログラムを作成していたりしてます。
前回は、 JSON データの変換でしたが、今回は、 CSV データの Array 配列への変換に
挑戦してみました。
CSV のデータを使ったプログラムは、以前 Java で少しだけ扱ったことが有ります。
Javascript で Array 配列変換のプログラムを作るに当たり、
その時、 Java で作成した CSV クラスを焼き直す予定でいたのですが、
自分で書いた 複雑でない、Java のソースを見ても、どうプログラムが走っているのか、
分からなくなっていました。綺麗さっぱり、忘れてしまったようです。。。ヽ(´ー`)ノ

しかし、JSON データを配列へ変換するプログラムを作成した経験があったためか、
なんとか、 形にすることができました。
相変わらず、ソースはグチャグチャしてます。

この、javascript で作成した getCSVArray() 関数は、
CSV データを Array 配列に変換します。
囲い文字(シングル、ダブルクォーテーション)で囲まれた文字内の改行に対応しています。
囲い文字が連続した場合は、セルの最初のと最後の文字を削除します。
囲い文字がセル単位で混在していても、配列を返してくれると思います。
また、 読み込む CSV データの区切り文字を、
str.getCSVArray('\t') 関数の第一引数に指定する事が出来ます。
タブ区切りの場合↑↑↑
第一引数に何も指定しないと、 カンマ区切りとしてプログラムが実行されます。
半角スペースを区切り文字に指定することは出来ません。
必要ない空白を削除するようにしたので、半角スペースを指定できなくなっていました。
配列は、関数の戻り値になります。

var data = csvData.getCSVArray('\t');

data 変数に csv データの配列が格納されると思います。

最終行の最終セルの先頭の文字が囲み文字の処理を調整しました。
囲み文字内の開始、終了の一回以上出現する半角スペースタブ削除を修正しました。

数学の勉強をやり直ししてたりします。_´ω`)_