Galera, ainda estou estudando JAVA, e estou tentando tratar um programa aqui. O programa faz o seguinte.
Ele pega a planilha do excel e cria uma tabela temporária e joga no banco de dados.
Dentro disso ele percorre célula por célula da primeira linha, então se a primeira linha tem 3 colunas, as outras linhas, o programa lê apenas 3 colunas, mesmo que tenha 4 ou 5 colunas.
O ideal aqui, é ele ver que a primeira linha deveria estar preenchida completamente.
Mas toda vez que ele percorre a linha e encontra um BLANK, ele pula para próxima linha pois entende que acabou aquela linha.
Isso funciona muito bem num cenário perfeito, mas estou forçando esse erro na primeira linha.
O objetivo é dar erro e mostrar para o usuário. Mas como ele encontra o blank e pula para a próxima linha, ele nunca vai reconhecer o erro.
@FXML
private void salvar() {
conta = 0;
criarTempExcel(rows);
rows.forEach(row -> {
try {
if (row.getCell(0).getCellType().toString() != "BLANK") {
List<Cell> cells = (List<Cell>) toList(row.cellIterator());
try {
ExcelLoadDao.getInstance().popularTemporaria(cells);
conta ++;
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}else
{
JOptionPane.showMessageDialog(null, "Erro ao salvar carga: ");
}return;
} catch (Exception e) {
e.printStackTrace();
}
});
try {
ExcelLoadDao.getInstance().persistirTemp(
listaTabelas.get(cmbTabelas.getSelectionModel().getSelectedIndex()).getComplemento());
JOptionPane.showMessageDialog(null, conta + " Linhas importadas.");
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Erro ao salvar carga: " + e.getMessage());
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Erro ao salvar carga: " + e.getMessage());
}
listViewExcel.getItems().clear();
btnSalvar.setDisable(true);
}