2017-04-05 76 views
1

任何人都有一个想法如何从jtable插入数据到现有的Excel文件使用java来开发这个程序和我的场景是这样的,jtable数据插入到Excel中,但Excel已经有一个设计和公式。我不知道如何开始它,所以我问问题。感谢您的提示。jtable数据插入excel

回答

1

首先,您需要从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

+0

我要插入数据到令人兴奋的excel文件? – LyodMichael

2

Excel使用复杂的格式为其本机.xls文件,但它也支持其他格式。我使用Tab-Separated Values(TSV),通常用于将数据库程序中的信息传输到电子表格。

您可以使用下面的代码从Jtable中提取数据并将其导出为ex​​cel。

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); 
    } 
}