2017-04-05 10 views
1

誰もが既存のExcelファイルにデータを挿入する方法を知っています。このプログラムを開発するためにJavaを使用しています。このシナリオはjtableデータの挿入ですが、excelはすでに設計と公式。私はそれを始める方法を知らないので、私は質問をする。あなたのヒントをありがとう。jtable data insert to exc

答えて

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

エキサイティングなファイルにデータを挿入する予定ですか? – LyodMichael

2

Excelはネイティブの.xlsファイルに複雑な書式を使用しますが、他の書式もサポートしています。私は、データベースプログラムからスプレッドシートに情報を転送するためによく使用されるTab-Separated Values(TSV)を使用しています。

以下のコードを使用して、Jtableからデータを抽出してエクセルにエクスポートすることができます。

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