Personalizar célula do excel. APACHE POI

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.