Запросом получаю данные в ResultSet. Как полученные данные выгрузить в Excel и сразу же открыть полученный Excel файл?
Это две отдельные задачи.
Формирование Excel файла
Для этого есть множество библиотек. Самые популярные из них Apache POI и Jasper Reports.
Пример с использованием Apache POI:
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class ApachePOIExcelWrite {
private static final String FILE_NAME = "/tmp/MyFirstExcel.xlsx";
public static void main(String[] args) {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Datatypes in Java");
Object[][] datatypes = {
{"Datatype", "Type", "Size(in bytes)"},
{"int", "Primitive", 2},
{"float", "Primitive", 4},
{"double", "Primitive", 8},
{"char", "Primitive", 1},
{"String", "Non-Primitive", "No fixed size"}
};
int rowNum = 0;
System.out.println("Creating excel");
for (Object[] datatype : datatypes) {
Row row = sheet.createRow(rowNum++);
int colNum = 0;
for (Object field : datatype) {
Cell cell = row.createCell(colNum++);
if (field instanceof String) {
cell.setCellValue((String) field);
} else if (field instanceof Integer) {
cell.setCellValue((Integer) field);
}
}
}
try {
FileOutputStream outputStream = new FileOutputStream(FILE_NAME);
workbook.write(outputStream);
workbook.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Done");
}
}
Запуск Excel с передачей ему результирующего файла
Так же можно решить разными способами. Один из них - передача сигнала системе о том, что нужно открыть файл просмотрщиком по умолчанию.
Desktop.getDesktop().open(new File("/tmp/MyFirstExcel.xlsx"));
В таком случае либо запустится Excel, либо появится системный диалог выбора программы для открытия файла.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть проект с классом MainActivity и соответствующим layout/activity_main
Как с помощью методаreplaceAll("\[", "") можно заменить [ на специальный символ \u00A7 (означает символ &)?
Есть дерево с 5-ю элементамиКак реализовать клик мышкой на item1 и item2?
Есть попап(fancybox 3) авторизации, в iphone если открыть его и начать вводить текст то курсор уезжает внизКак пофиксить посмотреть баг можно тут...