
今日は前回の実験の続きじゃ。CSVをデータベースに入れるための方法論を考えていこう。
前回やったように、カンマ、改行、ダブルコーテーションが入ったデータの取り扱いですね。
その通り。まず、いきなりまともに対応すると少々複雑なので、データの性質的にもし許されるのであれば、Excel上で他の文字に置換してからCSVで吐き出すほうが楽じゃ。今回試すのはその方法じゃ。
それって”逃げ”じゃ?
そのとおりじゃ(笑)でも、無駄に複雑なことをする必要がないのであればそのほうが良いケースも多いから、データの性質を検討してこのような判断をするのは良いことじゃ。
たとえば、半角のダブルコーテーションやカンマはすべて全角に書き換え、改行も必要がなければスペースなど他の文字に置換するのじゃ。また、今回のプロジェクト用に改行をCSV上は一旦別の普通使われないような専用の記号にしておいて、あとで表示用のプログラムにて改行にもどしてあげる方法もあるよ。たとえば<<<BR>>>とか。
なるほど。じゃ、実験してみます。Excelで置換は、置換したい範囲を選択した後、[編集] > [置換] または[Ctrl] + [H]ですね?
うーん、ダブルコーテーションやカンマは簡単ですが、改行はどうやって置換するのですか?「検索文字列」のところで改行を押すと右のボタンを押したことになっちゃうから、改行コード、置換できません!(レインボーブリッジ、封鎖できません・・・風?)
これは知らない人も多いのじゃが、「検索文字列」のところで、[Ctrl] + [J]とすると、見た目上は変わらんが改行コードをひとつ入力したことになるんじゃ。これで置換を試してごらん。
わーい、うまくできました!
ではこれをCSV形式で保存してみると・・・
無事誰でもわかるデータが出力できました。
次回は上記処理が許されない場合、Excelが吐き出したままの状態のCSVをプログラムのほうで解析し正しくデータを取得する方法を紹介するが、やはり多少複雑なのじゃ。必要性がない部分に複雑なプログラムを適用することは、工数(コスト)を考えると無駄なのじゃ。今回のように避ける方法を選択する方が賢明な場合もあるのじゃ。
プログラマは常に効率の良い(楽をする)方法を考えるクセをつけることが大事なんじゃ。
(・・・続く)
(文責:金澤)