Bom dia, estou com uma dúvida, tenho campos null no banco de dados SQLServer e quando exporto para uma planilha excel o valor sai como “null”, gostaria que ficasse em branco. Segue abaixo o código que uso para exportar da minha tabela para um arquivo .xls não sei se o erro é no meu banco ou no meu código.
if (this.masterTable.getRowCount() == 0) {
JOptionPane.showMessageDialog(null, "Não existem dados para exportar!");
return;
}
JFileChooser selecionar = new JFileChooser();
File archivo;
if (selecionar.showDialog(null, "Exportar Excel") == JFileChooser.APPROVE_OPTION) {
archivo = selecionar.getSelectedFile();
int cantFila = masterTable.getRowCount();
int cantColumna = masterTable.getColumnCount();
Workbook wb;
wb = new XSSFWorkbook();
Sheet folha = wb.createSheet("Nova Folha");
try {
for (int i = -1; i < cantFila; i++) {
Row fila = folha.createRow(i + 1);
for (int j = 0; j < cantColumna; j++) {
Cell celda = fila.createCell(j);
if (i == -1) {
celda.setCellValue(String.valueOf(masterTable.getColumnName(j)));
} else {
celda.setCellValue(String.valueOf(masterTable.getValueAt(i, j)));
}
wb.write(new FileOutputStream(archivo +".xlsx"));
}
}
JOptionPane.showMessageDialog(null, "Exportado com sucesso!");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Problema ao exportar!");
}
} else {
}
Se o retorno do método retornar vazio, vc coloca uma string vazia.
Você pode fazer a inicialização da string como vazia, é só faz a atribuição do this se o valor não for nulo
Existem n formas
Sim, eu entendi isso.
O que eu não entendo é a razão pela qual você não faz a validação de valores que virão de colunas que aceitam valores nulos e faz a substituição por uma string vazia.
Usando o código que você postou? Os dados estão no mastertable? Se sim, então você precisa fazer algo assim: masterTable.getValueAt(i, j) == null ? "" : masterTable.getValueAt(i, j)