Criando arquivos Excel com tabelas dinâmicas em Java
Estava com esse problema recentemente e vou dar dicas sobre o que pode ser feito:
- Criar um arquivo usando o próprio Excel que servirá de template. Escrever os dados e dar nome ao range de dados (“Name a Range” no Excel em Inglês).
- Neste template definir as tabelas dinâmicas (pivot tables) usando o range definido no item anterior (não utilizar seleção manual de células). Entrando nas opções da tabela dinâmica, marcar a opção para fazer refresh ao abrir o documento.
- Utilizando o POI, escrever os comandos no java que abra o arquivo template, insira os dados reais por cima dos dados de exemplo, reajuste o named range de células para refletir a quantidade de linhas que tem os dados inseridos e salvar o arquivo com outro nome.
Expliquei bem por cima o que tem que fazer para ajudar aqueles que não tem nenhuma idéia. Outra coisa é que o POI deu problema ao tentar abrir um arquivo meu que tinha filtros, então devemos tirar todos os filtros do arquivo Excel. Uma coisa que não sei é se as tabelas dinâmicas feitas vão funcionar no Open Office.
Integrando Stripes com Jasper Reports
Vou falar aqui de como fazer a integração do Jasper Reports com o Stripes. Mais especificamente de como fazer o método num ActionBean do Stripes.
Uma das maneiras de se gerar relatórios com o Jasper é utilizando um OutputStream que conterá o relatório gerado. Sabendo disso, segue um exemplo de método de um ActionBean do Stripes que exporta um pdf, por exemplo:
public Resolution exportaPdf() {
ByteArrayOuputStream output = new ByteArrayOutputStream();
geraRelatorioPdf(output);
return new StreamingResolution("application/pdf",
new ByteArrayInputStream(output.toByteArray()))
.setFileName("relatorio.pdf");
}
Este método ao ser chamado da tela, irá gerar o relatório em output e retornará um StreamingResolution com os dados do relatório, fazendo com que o navegador apresente a janela pedindo para salvar o arquivo.
Caso se deseje exibir no navegador um relatório gerado em html, podemos fazer de forma semelhante:
public Resolution exibeRelatorioHtml() {
ByteArrayOuputStream output = new ByteArrayOutputStream();
geraRelatorioHtml(output);
return new StreamingResolution("text/html",
new ByteArrayInputStream(output.toByteArray()));
}
Em ambos os casos, utilizei os métodos geraRelatorio somente para simplificar a explicação do ActionBean. Estes métodos que se utilizariam do Jasper Reports para a confecção dos relatórios.
Acentuação no macbook
Option + E – Acento agudo
Option + ` – Acento grave
Option + I - Acento circunflexo
Option + N - Til
Option + C - C cedilha
Subversion no Eclipse 3.4 Ganymede
O plugin subversive agora faz parte do Eclipse como um componente opcional. Para instalá-lo deve-se entrar em Help, Software Updates e escolher a opção Available Software. Clicar na seta do lado do Ganymede para abrir as categorias, escolher a categoria Collaboration Tools e selecionar a opção SVN Team Provider.
Ainda ficarão faltando os conectores SVN que devem ser baixados do site da Polarion (empresa que faz o subversive). Para isso devemos usar, ainda em Software Updates do Eclipse, o botão Add Site e colocar a seguinte url:
http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/
Assim aparecerá na janela o site adicionado e será possível selecionar os conectores. Eu selecionei todos, acho que é possível escolher um diferente do default após a instalação caso queira mudar.
Depois de feito tudo isso é só mandar instalar e reiniciar o Eclipse.