我试图从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单元格中,依此类推……我使用TAB转义序列("t"),所以数据移动到下一列,但它没有发生。请建议
当我使用","作为分隔符代替"t"时,它可以工作:excel.write(model.getValueAt(i, j).toString() + ",");