phpmyadminでCSVをエクスポートしてエクセルで編集して、インポートする

phpmyadminCSVをエクスポートしてエクセルで編集すると時のメモ。
エクセルってCSV編集には基本向いていないけど読み込んだ編集機能は便利だからエクセルで編集したい。
でもフィールド内の改行とかの問題で正しく読み込んでくれない。
その時の対応メモ。

【エクスポートするとき】

  • エクスポートで『行の終端記号』を<BR>など任意の記号で。そうするとレコードの終端は<BR>になり改行されないが、フィールド内の改行が¥r¥nで残る。
  • 「フィールド区切り記号」は";"にしています。","だと金額などで使われているとご認識されるので。
  • 正規表現で¥r¥nを/BR/など任意の記号に置換してエクセルのセル内改行にエスケープ対応。
  • <BR>を¥r¥nで置換。レコードごとに改行完了。
  • 文字コードEUCSJISへ変換。エクセルはSJIS以外は文字化けするため。
  • 保存する。

【エクセルでCSV保存する】

  • エクセルで編集しCSVで保存する場合はVBマクロを利用する。

http://jut.homeip.net/kata/excelcsv/excelcsv.htm

まずは組み込み
     EXCELを起動し、メニューの「ツール」−「マクロ」−「Visual Basic Editor」でマクロ開発環境を起動する。
     左側にプロジェクトのウィンドウが出ていると思う。
     出ていない人は、メニューの表示からプロジェクトエクスプローラーを選択する。
     このマクロを現在のブックのみで使う場合は、一番上(多分)に表示されている現在のブックを選択しておく。
     (VBAProject(book1)とかいうやつ)
     どのブックを開いている時でも使いたい場合には、PERSONAL.XLSを選択しておく。
     (VBAProject(PERSONAL.XLS))
     PERSONAL.XLSがない場合には、まず、これを作成する。
     作成方法はPERSONAL.XLSの作り方を参照のこと。

     「ファイル」−「ファイルのインポート」でCSVIO.lzhを解凍してできたファイルの中からFrmOpenCsv.frmを選択し、組み込む。
     次に、同様にしてCSVIO.BASを組み込む。
     たったのこれだけで組み込みは終了。
     もうVisual Basic Editorを閉じてもよい。

CSV吐き出しでは「フィールド区切り記号」は";"がオススメ。

CSVを整形】

  • "NULL"⇒NULLへ置換。
  • /BR/を¥r¥nへ正規表現で置換。
  • SJISEUCへ変換。
  • 保存。

【インポートするとき】

  • ファイルの文字セットはeucなら「eucjpms」
  • phpmyadminのインポートオプション「テーブルデータを差し替えるファイル」をチェック。
  • セル内改行は""で囲まれていれば気にせずアップしてもOK。ただしフィールド数が合っていないとはじかれる。