如何将JTable导出到.csv文件?

就像标题所暗示的那样,我正在寻找一种将带有数据的jtable导出到.csv file 。 我不是在寻找其他选项然后是CSV ,因为CSV是我的程序的要求。

我一直在寻找某些东西,比如apache.camel bindy ,我找不到足够的信息来理解如何使用它。

什么推荐? 如果某人有一个体面的使用bindy例子,我也不介意。

友好的问候,

Skillcoil

您可以使用apache poi从JTable生成Excel文件,然后使用此处的代码将XLS转换为CSV文件使用Java将XLS文件导出为CSV文件。

我实际上用这种方式生成CSV文件

它是这样的:

  public void writeCSVfile(JTable table) throws IOException, ClassNotFoundException, SQLException{ Writer writer = null; DefaultTableModel dtm = (DefaultTableModel) table.getModel(); int nRow = dtm.getRowCount(); int nCol = dtm.getColumnCount(); try { writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("file.txt"), "utf-8")); //write the header information StringBuffer bufferHeader = new StringBuffer(); for (int j = 0; j < nCol; j++) { bufferHeader.append(dtm.getColumnName(j)); if (j!=nCol) bufferHeader.append(", "); } writer.write(bufferHeader.toString() + "\r\n"); //write row information for (int i = 0 ; i < nRow ; i++){ StringBuffer buffer = new StringBuffer(); for (int j = 0 ; j < nCol ; j++){ buffer.append(dtm.getValueAt(i,j)); if (j!=nCol) buffer.append(", "); } writer.write(buffer.toString() + "\r\n"); } } finally { writer.close(); } } 

怎么样一个for循环? TableModel提供所有必要的数据,例如行数,列数和数据。