Java: Как экспортировать данные (БД, запросы или содержимое таблицы) в Excel? - PullRequest
0 голосов
/ 11 января 2012

Я хотел бы знать, как экспортировать содержимое таблицы или данных из запроса в файл Excel.Также, какое расширение файла лучше экспортировать в xls или csv?

Заранее спасибо.


Редактировать: что я хочу, чтобы пользователь мог экспортироватьсодержимое JTable, содержащее результаты запроса в файл, совместимый с Excel, нажатием кнопки.

Я не знаю, как лучше всего это сделать?Я нашел разные способы, но я не уверен, какой из них следовать.Можно ли сгенерировать JasperReport, а затем экспортировать те же данные в Excel?


Edit2: Хорошо, поэтому я решил экспортировать в .csv, как предлагает большинство из вас.Мой последний вопрос: какой из них лучше использовать, opecsv или javacsv ?Оба варианта кажутся действительно простыми в использовании.

Спасибо!

Ответы [ 5 ]

3 голосов
/ 11 января 2012

Экспорт в csv проще - и может быть выполнен вручную в крайнем случае в зависимости от данных (каждая новая строка - это новая строка, а значения ячеек разделяются запятой) - для этого есть библиотеки с открытым исходным кодом1001 * и код для копирования набора результатов в ваш вывод должен быть тривиальным

1 голос
/ 11 января 2012

Если вам абсолютно необходим Excel, используйте библиотеку Apache POI.

0 голосов
/ 11 января 2012

В дополнение к уже даным ответам я хотел бы сказать, что я бы предпочел CSV.

CSV не зависит от приложения, и вы можете позже манипулировать данными с любым другим языком / программой (Python, R, Java, Excel и т. Д.).

0 голосов
/ 11 января 2012

У меня был хороший успех с jXLS: http://jxls.sourceforge.net/

это позволяет вам использовать JSP-подобные теги в собственном шаблоне Excel со всем форматированием и т. Д. Вы передаете данные для замены в этот шаблон Excel из вызовов Java API через структуру Map (аналогично запросу vars.)

Это хорошая более легкая альтернатива JasperReports, если вы просто хотите отформатированный вывод Excel.

0 голосов
/ 11 января 2012

Вы должны создать текстовый файл (csv) и записать результат базы данных.

PrintWriter out
   = new PrintWriter(new BufferedWriter(new FileWriter("foo.csv")));

while(rs.next())
{
  out.println(String.format("%s,%s,%s",rs.getString(1),rs.getString(2),rs.getString(3));
}
...