0

JXTableから.csvファイル(Excel)にデータをエクスポートしようとしています。私はこれに次のコードを使用しています:

public void exportToExcel(NGAFStandardTable table, File file){
        int i = 0;
        int j = 0;
        try{

            TableModel model = table.getModel();
            FileWriter excel = new FileWriter(file);

            for (i = 0; i < model.getColumnCount(); i++) {
                excel.write(model.getColumnName(i) + "\t");
            }

            excel.write("\n");

            for (i = 0; i < model.getRowCount(); i++){
                for (j = 0; j < (model.getColumnCount()); j++){
                    if(model.getValueAt(i,j) == null){
                        excel.write("" + "\t");
                    }
                    else { 
                        excel.write(model.getValueAt(i,j).toString() + "\t");
                    }
                }
                excel.write("\n");
            }

            excel.close();
        }
        catch(IOException e) {
            System.out.println(e);
        }
    }

その結果、テーブルのすべての値を含むcsvファイルを取得していますが、各行の値は1つのセル(たとえば、A1、A2、A3)にあります。つまり、row1のすべての値はA1セルにあり、以下同様です...タブエスケープシーケンス( "\ t")を使用しているため、データは次の列に移動しますが、発生しません。親切に提案

4

1 に答える 1

0

「\t」の代わりにデリメータとして「、」を使用すると機能しました。 excel.write(model.getValueAt(i, j).toString() + ",");

于 2013-03-12T10:46:48.327 に答える