Olá, sou novato em programação, estou desenvolvendo um pequeno software para gerenciamento de “estoque”, estou utilizando o Netbeans 12.3 para desenvolver e o MySQL 8 de banco de dados, tenho um JFrame com uma JTable, preciso salvar estes dados que são pesquisados na JTable em um arquivo do excel. Se alguém puder me ajudar agradeço!
Se alguém tiver um exemplo de código ou algum JAR que preciso usar, já tentei com o POI porem não consegui.
Apache POI é a melhor opção.
Posta como você tentou que a gente ajuda a identificar o problema.
Fiz um botão “Exportar”, quando clicar o action do botão é
private void btnExportarActionPerformed(java.awt.event.ActionEvent evt) {
FileOutputStream excelFOU = null;
BufferedOutputStream excelBOU = null;
XSSFWorkbook excelJTableExporter = null;
JFileChooser excelFileChooser = new JFileChooser("C:\\Users\\Iora\\Desktop");
excelFileChooser.setDialogTitle("Salvar Como");
FileNameExtensionFilter fnef = new FileNameExtensionFilter("EXCEL FILES", "xls", "xlsx", "xlsm");
excelFileChooser.setFileFilter(fnef);
int excelChooser = excelFileChooser.showSaveDialog(null);
//Verifica se o botão salvar foi clicado
if (excelChooser == JFileChooser.APPROVE_OPTION) {
try {
excelJTableExporter = new XSSFWorkbook();
XSSFSheet excelSheet = excelJTableExporter.createSheet("JTable Sheet");
for (int i = 0; i < tblExcel.getRowCount(); i++) {
XSSFRow excelRow = excelSheet.createRow(i);
for (int j = 0; j < tblExcel.getColumnCount(); j++) {
XSSFCell excelCell = excelRow.createCell(j);
excelCell.setCellValue(tblExcel.getValueAt(i, j).toString());
}
}
excelFOU = new FileOutputStream(excelFileChooser.getSelectedFile() + ".xlsx");
excelBOU = new BufferedOutputStream(excelFOU);
excelJTableExporter.write(excelBOU);
JOptionPane.showMessageDialog(null, "Exportado com Sucesso");
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
if (excelBOU != null) {
excelBOU.close();
}
if (excelFOU != null) {
excelFOU.close();
}
if (excelJTableExporter != null) {
excelJTableExporter.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
Qualquer coisa posso postar o restante do código
Eu utilizo o JXL e gosto muito, único problema é a compatibilidade com os formatos de planilhas mais novos. Mas nada que dê pra contornar.
Mesmo sabendo que existem opções melhores como o APACHE POI, eu me adequei bem ao JXL e achei bem simples.