サンプルダウンロード


ソース

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Vector;
 
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
 
public class CsvToJTable extends JFrame {
	JTable tbl;
	DefaultTableModel model;
 
	public static void main(String[] args) {
		new CsvToJTable();
	}
 
	public CsvToJTable() {
		setTitle("Csvを読み込んでJTableに表示");
		setBounds(200, 100, 300, 200);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
 
		// Csvファイルから表示データ作成
		Vector<Vector<String>> data = readCsv(new File("CsvRead.csv"));
 
		// カラムの名前をベクターに設定
		Vector<String> names = new Vector<String>();
		names.add("ID");
		names.add("タイトル");
		names.add("日付");
 
		// 表示データと名前からテーブルモデル作成
		model = new DefaultTableModel(data, names);
		// テーブルモデルからJTableを作成
		tbl = new JTable(model);
		// JTableをフレームに追加
		add(new JScrollPane(tbl));
 
		setVisible(true);
	}
 
	// CSVファイルを読み込んで、Vectorに詰めて返します。
	public static Vector<Vector<String>> readCsv(File f) {
		Vector<Vector<String>> data = new Vector<Vector<String>>();
		try {
			FileInputStream s = new FileInputStream(f);
			// 文字コードを変える場合は、InputStreamReaderの第二引数を変更するとよいです。
			InputStreamReader r = new InputStreamReader(s, "Shift_JIS");
			BufferedReader br = new BufferedReader(r);
			String line;
			while ((line = br.readLine()) != null) {
				line = line.substring(1, line.length() - 1);
				String[] ary = line.split("\",\"");
				Vector<String> v = new Vector<String>();
				for (String cell : ary) {
					v.add(cell);
				}
				data.add(v);
			}
			br.close();
			r.close();
			s.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return data;
	}
}