Top / 自作ツール / opencsvPlus

Java/CSVを取り扱う のページでopencsv - an open source csv parser for Java という非常にcoolなCSVライブラリを取り上げたのですが、いくつか欲しい機能がなかったようなので、追加で作ってみました。

追加で作った機能は、

くらいですが、、、、。

ダウンロード

opencsvPlus.jar

インストール

基本的に http://www.masatom.in/viewvc/trunk/opencsvPlus/?root=Others をダウンロードしてEclipseにimportすればセットアップは完了ですね。他の環境で使用する場合はこのプロジェクト内にある

なども必要です。

使い方

JavaBeans?のフィールドとCSVを設定ファイルでマッピングする機能

public class HeaderColumnNameAutoTranslateSample03 {
  private static final String CSV_FILE = "sample.csv";

  public static void main(String[] args) throws IOException {
    HeaderColumnNameAutoTranslateMappingStrategy strat = new HeaderColumnNameAutoTranslateMappingStrategy();
    // FileInputStream in = new FileInputStream(new File("hogehoge.txt"));
    // strat.setInputStream(in);
    strat.setType(CSVSampleBean.class);
    CsvToBean csv = new CsvToBean();
    List<CSVSampleBean> list = csv.parse(strat, new FileReader(CSV_FILE));
    for (CSVSampleBean bean : list) {
      System.out.println(bean);
    }
  }
}

詳細は、プログラム中でなく、設定ファイルとかでマッピングを指定したいに書きました。、

CSVへ出力するときにフィールドをどの順番で出力するか指定する機能

public class CSVWriterSample04 {
  private static final String CSV_FILE = "sampleOut.csv";

  public static void main(String[] args) throws IOException {
    HeaderColumnNameAutoTranslateMappingStrategy strat = new HeaderColumnNameAutoTranslateMappingStrategy();
    // FileInputStream in = new FileInputStream(new File("hogehoge.txt"));
    // strat.setInputStream(in);
    strat.setType(CSVSampleBean.class);
    BeanToCsv csv = new BeanToCsv();
    List<CSVSampleBean> list = getList();
    // カンマ区切りで、""で囲まない、ばあい。
    csv.writeAll(strat, new CSVWriter(new FileWriter(CSV_FILE), ',',
        '\u0000'), list);
  }

  public static List<CSVSampleBean> getList() {
    try {
      HeaderColumnNameAutoTranslateMappingStrategy strat = new HeaderColumnNameAutoTranslateMappingStrategy();
      strat.setType(CSVSampleBean.class);
      CsvToBean csv = new CsvToBean();
      List<CSVSampleBean> list = csv.parse(strat, new FileReader(
          "sample.csv"));
      return list;
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }
    return null;
  }
}

上記の

BeanToCsv csv = new BeanToCsv();
csv.writeAll(strat, new CSVWriter(new FileWriter(CSV_FILE), ',',
        '\u0000'), list);

このように、BeanToCsv?クラスを用いて、JavaBeans?をCSV出力する事ができます。フィールドのどれをどの順番で出力するかの設定は、先の設定ファイル*1

姓=last_name
名=first_name
年齢=age

を用いることができます。上記のように設定すれば、上の順番で、ヘッダが左辺の日本語でCSV出力されます。ようするに出力されるCSVはこんな感じ。

姓,名,年齢
とうきょう,たろう,33
東京,太郎,15

この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / 自作ツール / opencsvPlus

現在のアクセス:10886


*1 該当のJavaBeans?と同じディレクトリに[Bean名].txtって名前で置いておく

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS