jXLS - Transformar resultado de consulta SQL em planilha do EXCEL (sem modelo)? [RESOLVIDO]

Bom dia,

Estou trabalhando com a biblioteca jXLS http://jxls.sourceforge.net/ mas estou tendo algumas dificuldades.

Queria fazer algo parecido com o que o programa ORACLE SQL DEVELOPER (http://www.oracle.com/technology/products/database/sql_developer/index.html) faz:
Recuperar o resultado de uma consulta e salvar em outros formatos, tais como xls (excel), csv, etc. (vide ilustração abaixo).

Inicialmente quero fazer o procedimento para o EXCEL.

O problema é que pelo que constatei, o jXLS só exporta para EXCEL se houver um arquivo xls que sirva como modelo. Como quero para qualquer consutlar que o cara digitar e quero os tipos de colunas do EXCEL (Numérico, texto, data) formatados automaticamente.

Como posso fazer essa operação sem possuir um modelo xls? Têm alguma forma de facilitar esse processo? :?:

Poderia até usar o ORACLE SQL diretamente, mas quero para outras finalidades, como embutir nos meus programas a saída de uma consulta para diversos formatos… de forma simples e que eu não tenha que ficar escrevendo modelos para tal (só quando quiser algo mais personalizado)…

OBS: Procurei mas não localizei o código fonte do ORACLE SQL para ver como ele faz…

Galera, após muita pesquisa… consegui encontrar uma ótima solução para o problema: http://www.bashanblog.com/2009/09/converting-resultset-to-excel-table-in.html

Essa forma de conversão que Guy Bashan criou na classe ResultSetToExcel é SHOW DE BOLA (ao contrário da nossa seleção… :lol:)!

A única parte chata é ter que ficar achando os pacotes que essa classe usa. A maioria são da APACHE POI. Alguns métodos e varíaveis static que ele usa são deprecated e tive que ficar procurando os jar´s do POI que ainda tinham esses métodos…
Para facilitar, seguem os nomes dos que deram mais trabalho de localizar:

[list]poi-3.2-FINAL-20081019.jar[/list]
[list]poi-contrib-3.2-FINAL[/list]
[list]Apache Commons Lang: commons-lang-2.5.jar[/list]

Usando essa classe, consegui gerar esse excel só com a chamada desse método: resultSetToExcel = new ResultSetToExcel(resultSet, "Agenda telefônica"); resultSetToExcel.generate(new File("c:\\agenda.xls"));
Ele converteu os tipo SQL para os tipos corretos de colunas do EXCEL.

Nada impede também que você especifique os tipos de cada coluna.

ResultSetToExcel resultSetToExcel = new ResultSetToExcel(resultSet,
                new ResultSetToExcel.FormatType[]{ResultSetToExcel.FormatType.INTEGER, ResultSetToExcel.FormatType.TEXT,
                    ResultSetToExcel.FormatType.TEXT, ResultSetToExcel.FormatType.TEXT, ResultSetToExcel.FormatType.TEXT}, "Agenda telefônica");

[size=18]Valeu Guy Bashan!![/size]