- ベストアンサー
jtableのデータをcsv形式で保存や、csv形式をjtableに表示たいのですが、
今、eclipseを使ってJavaの勉強をしているのですが、 『ファイルを開く』ダイヤログまでは表示することが出来たのですが、 csv形式のファイルを選択し、jtableに表示したり、 jtableに入力したデータをcsv形式で保存をしたいのですが、 どうすれば、出来るのでしょうか? ご指導の程、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
質問には小文字で書かれていますが、SwingのJTableクラスのことですよね? 「JTableのセルに値を設定したりセルから値を読み出す方法」が分からないのか、「(JTableと関係なく) CSVファイルを読み書きする方法」が分からないのかが区別できていないように感じました。 とりあえず、適当なデータが設定済みのJTableのオブジェクトからCSVっぽく標準出力へ書き出すならこんな感じでしょうか。かなり手抜きのコードなので要注意。 JTable tb = new JTable(); … (tbにデータを設定) … int cols = tb.getColumnCount(); int rows = tb.getRowCount(); for (int i=0; i<rows; i++) { for (int j=0; j<cols; j++) { Object val = tb.getValueAt(i, j); if (val != null) System.out.print("\"" + val + "\""); if (j < cols-1) System.out.print(','); } System.out.println(); } 勉強頑張ってください。
補足
>質問には小文字で書かれていますが、SwingのJTableクラスのことですよね? そうです。言葉足らずで申し訳ありません。 >「JTableのセルに値を設定したりセルから値を読み出す方法」が分からないのか、「(JTableと関係なく) CSVファイルを読み書きする方法」が分からないのかが区別できていないように感じました。 それなんですが、多分その通りだと思います。 説明下手なのですが、 『JTableのセル一つ一つに数値を入力した時、配列みたいに読み出す方法』と、 『JTableのセルに数値を入力してあって、それをCSVファイルとして(例えば、デスクトップとかに)保存したり、その逆にCSVファイルを読み込んでJTableに表示させる』 みたいな(汗 >for (int i=0; i<rows; i++) { >for (int j=0; j<cols; j++) { >Object val = tb.getValueAt(i, j); >if (val != null) >System.out.print("\"" + val + "\""); >if (j < cols-1) >System.out.print(','); >} >System.out.println(); >} JTableのオブジェクトから書き出す方法は理解できました。 あとは、どのようにしてCSVとして保存すれば良いのか。と、 CSVファイルを読み込んでJTableのセル一つ一つに数値を出力する方法 だけだと思います。 >勉強頑張ってください。 頑張ります。