我有以下代码将Jtable导出为Excel csv导出。
我尝试附加文件(布尔值true),但是附加发生在同一文件本身内。
public static boolean exportToCSV(JTable table,String pathToExportTo) {
try {
TableModel model = table.getModel();
FileWriter csv = new FileWriter(new File("C:/Users/user/Desktop/test.csv"));
for (int i = 0; i < model.getColumnCount(); i++) {
csv.write(model.getColumnName(i) + ",");
}
csv.write("\n");
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < model.getColumnCount(); j++) {
csv.write(model.getValueAt(i, j).toString() + ",");
}
csv.write("\n");
}
csv.close();
JOptionPane.showMessageDialog(null,"Export Successful!");
return true;
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null,"Error! Excel cannot be exported!");
}
return false;
这可以正常工作,但是会覆盖现有文件。我希望将其导出为其他文件,并可能将其重命名为text(1).csv
答案 0 :(得分:0)
您可以使用一种方法来计算报告输出文件:
File resolveFileName(){
String directory ="C:/Users/user/Desktop/";
File res = new File(directory + "test.csv");
if(!res.exists()){
return res;
}
int filesInDirectoryCount = (new File(directory)).listFiles().length;
String fileName = "test_"+filesInDirectoryCount+".csv";
return new File(directory+fileName);
}
用法:
FileWriter csv = new FileWriter(resolveFileName);
这将基于此目录中的文件数在文件名中添加一个数。因此应该可以解决这个问题。