如何从 JTable 保存到 CSV 或 Excel?
How to save from JTable to CSV or Excel?
有没有办法将 JTable
数据保存到 excel?我想保存我从程序输入的数据,从 table 然后到 CSV 文件。
我想要它以便有一个按钮可以将输入的数据从 GUI 保存到 table,然后保存到 CSV 文件。
据我所知,没有 'magic function' 的 JTable 可以执行此操作。 JTable 是一个 UI 组件,您要的是数据功能,而不是用户界面功能。而且和eclipse关系不大,只是用来写代码的IDE
我认为您可能正在寻找的是 JTable 所基于的 模型。我想到的第一个解决方案是更改该模型代码,使其具有一种可以以您想要的格式写出数据的方法;然后 UI 上的(另一个)按钮将在模型上调用此方法以在用户选择时写出数据。可能还有其他方法可以完成此操作,但这似乎是最直接和最简单的。
这可能对你有帮助:-
写入 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());
您可以试试这个代码:
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;
}
有没有办法将 JTable
数据保存到 excel?我想保存我从程序输入的数据,从 table 然后到 CSV 文件。
我想要它以便有一个按钮可以将输入的数据从 GUI 保存到 table,然后保存到 CSV 文件。
据我所知,没有 'magic function' 的 JTable 可以执行此操作。 JTable 是一个 UI 组件,您要的是数据功能,而不是用户界面功能。而且和eclipse关系不大,只是用来写代码的IDE
我认为您可能正在寻找的是 JTable 所基于的 模型。我想到的第一个解决方案是更改该模型代码,使其具有一种可以以您想要的格式写出数据的方法;然后 UI 上的(另一个)按钮将在模型上调用此方法以在用户选择时写出数据。可能还有其他方法可以完成此操作,但这似乎是最直接和最简单的。
这可能对你有帮助:-
写入 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());
您可以试试这个代码:
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;
}