Boa tarde,
Criei um sistema que gera um relatório em Excel, o sistema está funcionando perfeitamente, porém, o que está me incomodando é apenas a estética em que o relatório está sendo gerado. O cabeçalho da planilha não está centralizado, não está em negrito e também, não tem cor no fundo, pesquisei alguns exemplos porém, sem sucesso. Alguém pode me dar um exemplo de código que se encaixe no meu? Segue me código.
Workbook wb = new HSSFWorkbook();
//Cria uma planilha Excel
Sheet sheet = wb.createSheet("Relatório C");
//Cria uma linha na Planilha.
Row cabecalho = sheet.createRow((short)0);
//Cria as células na linha
cabecalho.createCell(0).setCellValue("Item");
cabecalho.createCell(1).setCellValue("Credor");
cabecalho.createCell(2).setCellValue("Documento");
cabecalho.createCell(3).setCellValue("Título");
cabecalho.createCell(4).setCellValue("Or");
Att.
Você precisa setar o CellStyle
da célula para decorar suas células.
Boa tarde Staroski,
Consegui usando o CellStyle, ficou assim:
//Cria uma linha na Planilha.
Row cabecalho = sheet.createRow((short)0);
//adicionando bordas
CellStyle style = wb.createCellStyle(); //criei o CellStyle
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //texto centralizado
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //não sei kk
style.setFillForegroundColor(HSSFColor.LEMON_CHIFFON.index); //cor de fundo
style.setBorderBottom(CellStyle.BORDER_THIN); //borda de baixo
style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //cor borda baixo
style.setBorderLeft(CellStyle.BORDER_THIN); //borda da esquerda
style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); //cor borda esquerda
style.setBorderRight(CellStyle.BORDER_THIN); //borda direita
style.setRightBorderColor(IndexedColors.BLACK.getIndex()); //cor borda direita
style.setBorderTop(CellStyle.BORDER_THIN); //borda de cima
style.setTopBorderColor(IndexedColors.BLACK.getIndex()); //cor borda cima
//Cria as células na linha
Cell cell;
cell = cabecalho.createCell(0); //tive que criar cada célula do cabeçalho
cell.setCellValue("Item"); //texto da celula 0
cell.setCellStyle(style); //setando o Stlye para a célula
cell = cabecalho.createCell(1); //e assim sucessivamente..
cell.setCellValue("Credor");
cell.setCellStyle(style);
cell = cabecalho.createCell(2);
cell.setCellValue("Documento");
cell.setCellStyle(style);
cell = cabecalho.createCell(3);
cell.setCellValue("Titulo");
cell.setCellStyle(style);
cell = cabecalho.createCell(4);
cell.setCellValue("Or");
cell.setCellStyle(style);
Agora estou a procura de saber como faço para gerar o excel com o tamanho das colunas personalizada, para não sair todas do mesmo tamanho.
Obrigado pela atenção.
Vejá a documentação do método setColumnWidth da classe Sheet
.
Olá,
Consegui utilizando o seguinte comando:
Sheet sheet = wb.createSheet("Relatório C");
Row cabecalho = sheet.createRow((short)0);
Cell cell;
cell = cabecalho.createCell(0);
cell.setCellValue("Item");
sheet.autoSizeColumn((short) 0); //onde 0 é o número da célula.
Ele personaliza automaticamente o tamanho através do seu conteúdo.
Obrigado.