2013-05-08 7 views
0

Как и название подразумевает, я ищу способ экспортировать jtable с данными в .csv file. Я не ищу другие варианты, то CSV, потому что CSV является обязательным для моей программы.Как экспортировать JTable в CSV-файл?

Я искал определенные вещи, например bindy из apache.camel put Я не мог найти достаточно информации, чтобы понять, как ее использовать.

Что рекомендуется? Если у кого-то есть достойный пример использования bindy, я бы тоже не возражал.

дружеским приветом,

Skillcoil

ответ

0

насчет немного для цикла? TableModel предоставляет все необходимые данные, такие как количество строк, количество столбцов и данные.

+0

Меня указал на использование API, или утилиты больше. Например, bindy использует аннотации для указания ect маршрута, но пока не может понять, как это работает, поэтому я пытаюсь найти альтернативы или даже лучшее решение, которое я сейчас изучаю. – Skillcoil

+0

На самом деле я понятия не имею об apis, но у меня есть идея java. это для цикла, о котором я говорю, будет более 10 строк кода ... Не знаете, если вам действительно нужно использовать целый api для такой небольшой задачи? – desperateCoder

1

Вы можете использовать apache poi для создания файла Excel из JTable, а затем использовать этот код отсюда Converting XLS to CSV files Using Java для экспорта файла XLS в файл CSV.

Я на самом деле использовать этот способ для создания CSV файлов

+0

Спасибо за совет. К сожалению, таблица, которую я хочу экспортировать, требует выбора для экспорта в файл CSV, XLS или TXT. Поэтому мне нужно найти пути экспорта для всех 3 (xls, котор я allready получил setup). Если метод преобразования xls get принят, я буду использовать это. – Skillcoil

+0

Удачи моему другу –

0

Это что-то вроде этого:

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(); 
     } 
    } 
Смежные вопросы