2014年9月18日木曜日

Apache Commons CSVとSwingBuilderでCSVデータを読み込み、テーブルに表示する

Apache Commons CSVとSwingBuilderでCSVデータを読み込み、テーブルに表示するには、以下のコードを実行します。

import javax.swing.*
import groovy.swing.*
import org.apache.commons.csv.*

def fmt = CSVFormat.EXCEL.withHeader()

println "file:${args[0]}"
def parser = fmt.parse(new FileReader(args[0]))
def data = []
parser.iterator().each { data.add(it.toMap()) }

sb = new SwingBuilder()
sb.edt {
  frame(
    title: args[0],
    show: true,
    resizable: true,
    size: [300, 100],
    defaultCloseOperation: WindowConstants.EXIT_ON_CLOSE
  ){
    scrollPane(){
      table(){
        tableModel(list: data){
          parser.getHeaderMap().each { key, index ->
            propertyColumn( header:key, propertyName: key, editable: false )
          }
        }
      }
    }
  }
}

0 件のコメント:

コメントを投稿