我正在尝试将数据从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文件,其中包含表中的所有值,但每行的值都在一个单元格中(例如,A1,A2,A3)。 即,row1的所有值都在A1单元格中,依此类推...... 我正在使用制表符转义序列(“\ t”),因此数据移动到下一列,但它没有发生。请建议
答案 0 :(得分:0)
当我使用“,”作为分隔符来代替“\ t”时它起作用了:
excel.write(model.getValueAt(i, j).toString() + ",");