ホーム > 技術情報 > CSVファイルをJTableで表示する | 検索 | 更新情報 |
Javaの入門書 | 著書 |
CSVViewerは、 CSVファイルをJTableで表示する簡単なビューアです。 java.swing.JTableの小さなサンプルプログラムと考えてください。
コンパイル&実行は、
javac CSVViewer.java java CSVViewer CSVファイル名
のようにします(J2SE 1.4以降必須)。
例えば、
java CSVViewer sample.csv
とすると、sample.csvというファイルを表示します。
CSVの切り分けには正規表現パッケージjava.util.regexを使っています。
/* CSVViewer.java */ import java.io.*; import java.awt.*; import java.util.regex.*; import javax.swing.*; import javax.swing.table.*; public class CSVViewer extends JFrame { private final String _filename; private final JTable _table = new JTable(); private final JScrollPane _pane = new JScrollPane(_table); public CSVViewer(String filename) throws IOException { super(filename + " - CSVViewer"); _filename = filename; readin(); getContentPane().add(_pane); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); show(); } private void readin() { Pattern pattern = Pattern.compile(","); DefaultTableModel model = (DefaultTableModel)_table.getModel(); try { final BufferedReader reader = new BufferedReader(new FileReader(_filename)); String line; for (int row = 0; (line = reader.readLine()) != null; row++) { String[] items = pattern.split(line); model.setRowCount(row + 1); for (int column = 0; column < items.length; column++) { if (model.getColumnCount() <= column) { model.setColumnCount(column + 1); } _table.setValueAt(items[column], row, column); } } reader.close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { if (args.length != 1) { System.out.println("Usage: java CSVViewer file.csv"); System.exit(0); } new CSVViewer(args[0]); } }
サンプルCSVファイル(sample.csv)です。
2002,ISBN4797321261,結城浩のPerlクイズ 2002,ISBN4797319127,Java言語で学ぶデザインパターン入門 マルチスレッド編 2001,ISBN4797316462,Java言語で学ぶデザインパターン入門 2001,ISBN4797312211,Perl言語プログラミングレッスン 入門編 1999,ISBN4797308036,Java言語プログラミングレッスン(上巻) 1999,ISBN4797310103,Java言語プログラミングレッスン(下巻) 1998,ISBN479730507X,Perlで作るCGI入門 基礎編 1998,ISBN4797305819,Perlで作るCGI入門 応用編 1998,ISBN4797307579,改訂第2版 C言語プログラミングレッスン 入門編 1995,ISBN489052519X,C言語プログラミングレッスン 文法編 1996,ISBN4890528687,新版 C言語プログラミングのエッセンス
あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。