最初に。参考にしたページ
- 本家ページ -> opencsv – General
- API ドキュメント -> Overview (opencsv 4.1 API)
- リポジトリ -> opencsv download | SourceForge.net
- 実際のエクスポート使用例 -> java-read-write-csv-file/OpenCSVWriter.java at master · callicoder/java-read-write-csv-file
No,氏名,電話番号 1,伊藤健一,0112223333 2,高橋哲也,0114445555 3,佐藤誠,0116667777
追記: 2015年11月22日
''' <summary> ''' エクセルファイルに存在するコネクションを全て削除します。 ''' </summary> Private Sub DeleteConnections() Do While ActiveWorkbook.Connections.Count > 0 ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete Loop End Sub ''' <summary> ''' エクセルファイルに存在する名前を全て削除します。 ''' </summary> Private Sub DeleteNames() Do While ActiveWorkbook.Names.Count > 0 ActiveWorkbook.Names.Item(ActiveWorkbook.Names.Count).Delete Loop End Sub
にて DB データをエクスポートする機能を紹介いたしました。
今回は、対となるインポート機能を開発いたします♪
こちらのシステムでインポート機能を考えます。ポイントは次の 2 点です。
Parent 1-n Child という関係を持っております。
ですのでシステム上は、Parent は必ず 1 つですけれども、それに紐づく Child はいくつあっても問題ありません。
ですけれども、インポート機能におきましては子どもの数の最大数を制限しませんと CSV ファイルの仕様を固めることが難しくなります。
したがいまして、今回は Child の数を最大 2 つとし、それ以上登録したい場合はウェブブラウザから追加する、という運用方法を想定いたしました。
に沿ってサンプルプロジェクトを作成したところからスタートです。
ソリューションおよびプロジェクト名は Sample3 といたしました。
追記: インポート版も作りましたの♪
DB のデータを CSV に出力してウェブブラウザからダウンロードしたいですの!今回、それを実現するコードを残しておきますわ♪
「1 行に Parent とその Child を 2 人分まで出力」いたしますので、子供が 0 人の場合は子どもの部分が空白となりますし、1 人の場合は 1 人分のみ埋まります。Child が 3 人の場合は、2 人分のみ CSV に書き込まれ、3 人目は記録されない点に注意ですの!
MySQL には CSV 出力する機能が備わっていることに、初めて気がつきました。
喜び勇んで試してみたものの、Excel ではどうにもうまく読み込めません。特に、セル内で改行があると、次の行という扱いになってしまうのですよね。。。
そこで、何とかしてみたメモを残しておきます。