有没有办法将JTable
的数据保存到Excel中?我想把从程序输入的数据,从表格中保存到CSV文件中。
我想要一个按钮,可以将GUI中输入的数据保存到表格中,然后再保存到CSV文件中。
有没有办法将JTable
的数据保存到Excel中?我想把从程序输入的数据,从表格中保存到CSV文件中。
我想要一个按钮,可以将GUI中输入的数据保存到表格中,然后再保存到CSV文件中。
public static void exportToCSV(JTable table,
String path) {
try {
TableModel model = table.getModel();
FileWriter csv = new FileWriter(new File(path));
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();
} catch (IOException e) {
System.out.println("Error "+e);
}
}
如果需要读取并在JTable中显示,可以使用OpenCSV。
CSVReader reader = new CSVReader(new FileReader("file.csv"));
List list = reader.readAll();
JTable table = new JTable(list.toArray());
我不知道JTable是否有任何“神奇函数”可以做到这一点。JTable是一个UI组件,你所要求的是一个数据函数,而不是用户界面函数。这与Eclipse没有太大关系,Eclipse只是用来编写代码的IDE。
我认为你可能正在寻找的是JTable所基于的模型。我想到的第一个解决方案是修改该模型代码,添加一个方法以按照你想要的格式输出数据;然后在你的UI上再添加一个按钮,当用户选择时,它会调用模型上的此方法来输出数据。可能还有其他方法可以完成这个任务,但这似乎是最直接和最容易的方法。
public static boolean convertToCSV(JTable table,
String path) {
try {
TableModel model = table.getModel();
FileWriter csv = new FileWriter(new File(path));
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();
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}