LoginSignup
0
3

More than 5 years have passed since last update.

Android の CSV ライブラリ

Posted at

Java のライブラリなら、
なんでも Android で使用できると思っていたが。
そうではなかったので、まとめておく。

Open CSV

カンマで分解して、文字列の配列にして、並び順で取得する。

サンプルプログラムは、ここに
https://github.com/ohwada/Android_Samples/tree/master/Csv1

下記のようなヘッダー行があるファイル
は、Java オブジェクトにマッピングする機能もある。

"Name","Quantity"
"Apple", "10"
"Banana", "20"

しかし、Android では、下記のエラーになる。

NoClassDefFoundError: Failed resolution of: Ljava/beans/Introspector

Android に は必要なライブラリがないようです。

参考 : Didn't find class “java.beans.Introspector” when Using OpenCSV to parse csv files

univocity-parsers

CSV ファイルを Java オブジェクトにマッピングする機能がある。

使い方

CSV ファイルのカラムに合わせたJavaクラスを用意する。
アノテーションでカラムと変数の対応を指定する。

@Data
public class Hoge {

@Parsed(field = "Name")
public String name = "";

@Parsed(field = "Quantity")
public int quantity = 0;

CSV ファイルの読み込み

    // Assetフォルダーから読み込む場合
    Reader reader = new InputStreamReader( getAssets().open(ファイル名) );

        CsvParserSettings settings = new CsvParserSettings();
    BeanListProcessor<Shopping> rowProcessor = new BeanListProcessor<>(Hoge.class);
        settings.setProcessor(rowProcessor);

 CsvRoutines routines = new CsvRoutines(settings);
List<Hoge> list
 = routines.parseAll( Hoge.class,  reader );

サンプルプログラムは、ここに
https://github.com/ohwada/Android_Samples/tree/master/Csv2

Apache Commons CSV

カンマで分解して、文字列の配列にして、並び順で取得する。

サンプルプログラムは、ここに
https://github.com/ohwada/Android_Samples/tree/master/Csv3

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3