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

时间:2013-05-08 09:19:49

标签: java swing jtable apache-camel export-to-csv

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

我一直在查看某些内容,例如bindy apache.camel,我找不到足够的信息来了解如何使用它。

建议什么?如果某人有bindy使用的合适例子,我也不介意。

友好的问候,

Skillcoil

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

就是这样:

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

答案 2 :(得分:0)

一个小循环怎么样?表模型提供所有必需的数据,例如行数,列数和数据。