jtable 数据插入 excel
jtable data insert to excel
任何人都知道如何将数据从 jtable 插入现有的 excel 文件,我正在使用 java 来开发这个程序,我的场景是这样的,jtable 数据插入到 excel但是 excel 已经有了设计和公式。我不知道如何开始,所以我问问题。谢谢你的提示。
首先您需要从 JTable 中提取数据。你这个方法:
public Object[][] getTableData (JTable table) {
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
Object[][] tableData = new Object[nRow][nCol];
for (int i = 0 ; i < nRow ; i++)
for (int j = 0 ; j < nCol ; j++)
tableData[i][j] = dtm.getValueAt(i,j);
return tableData;
}
现在有了数据,您可以使用 apache poi 将它们附加到 excel 文件中。这里有教程http://poi.apache.org/spreadsheet/quick-guide.html
Excel 对其原生 .xls 文件使用复杂的格式,但它也支持其他格式。我正在使用制表符分隔值 (TSV),它通常用于将信息从数据库程序传输到电子表格。
您可以使用以下代码从 Jtable 中提取数据并将其导出到 excel。
public void toExcel(JTable table, File file) {
try {
TableModel model = table.getModel();
FileWriter excel = new FileWriter(file);
for (int i = 0; i < model.getColumnCount(); i++) {
excel.write(model.getColumnName(i) + "\t");
}
excel.write("\n");
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < model.getColumnCount(); j++) {
excel.write(model.getValueAt(i, j).toString() + "\t");
}
excel.write("\n");
}
excel.close();
} catch (IOException e) {
System.out.println(e);
}
}
任何人都知道如何将数据从 jtable 插入现有的 excel 文件,我正在使用 java 来开发这个程序,我的场景是这样的,jtable 数据插入到 excel但是 excel 已经有了设计和公式。我不知道如何开始,所以我问问题。谢谢你的提示。
首先您需要从 JTable 中提取数据。你这个方法:
public Object[][] getTableData (JTable table) {
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
Object[][] tableData = new Object[nRow][nCol];
for (int i = 0 ; i < nRow ; i++)
for (int j = 0 ; j < nCol ; j++)
tableData[i][j] = dtm.getValueAt(i,j);
return tableData;
}
现在有了数据,您可以使用 apache poi 将它们附加到 excel 文件中。这里有教程http://poi.apache.org/spreadsheet/quick-guide.html
Excel 对其原生 .xls 文件使用复杂的格式,但它也支持其他格式。我正在使用制表符分隔值 (TSV),它通常用于将信息从数据库程序传输到电子表格。
您可以使用以下代码从 Jtable 中提取数据并将其导出到 excel。
public void toExcel(JTable table, File file) {
try {
TableModel model = table.getModel();
FileWriter excel = new FileWriter(file);
for (int i = 0; i < model.getColumnCount(); i++) {
excel.write(model.getColumnName(i) + "\t");
}
excel.write("\n");
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < model.getColumnCount(); j++) {
excel.write(model.getValueAt(i, j).toString() + "\t");
}
excel.write("\n");
}
excel.close();
} catch (IOException e) {
System.out.println(e);
}
}