IDÉIA! Classe que gera relatório em HTML

Amigos do PJ,

Fiquei matutando em como fazer para o meu programinha gerar relatórios que pudessem ser impressos sem a necessidade de programas adicionais! Daí bolei a idéia abaixo, que gostaria de compartilhar com a comunidade do PJ para trocarmos idéias, se alguém tiver uma sugestão de aprimoramento da idéia! Aí vai:

[color=“darkblue”]import javax.swing.;
import java.io.
;
import java.util.*;

public class Relatorio {

private static File file;
private static FileOutputStream fos;
private static PrintWriter out;


public static void gerar(JTable tabela, String nome){
    try{
        file = new File("c:/"+nome+".html");
        fos = new FileOutputStream(file);
        out = new PrintWriter(fos);
        
        out.println("<HTML>");
        
        out.println("<HEAD>");
        out.println("<TITLE>Relatório de "+nome+"</TITLE>");
        out.println("</HEAD>");
        
        out.println("<BODY>");
        out.println("<H1>Relatório de "+nome+"</H1><BR>");
        
        int nColunas = tabela.getColumnCount();
        int nLinhas = tabela.getRowCount();
        
        out.println("<TABLE border='1' width='100%'>");
        
        out.println("<TR>");
        for(int coluna = 0; coluna < nColunas; coluna++){
            out.println("    <TH>"+tabela.getColumnName(coluna)+"</TH>");
        }
        out.println("</TR>");
        
        for(int linha = 0; linha < nLinhas; linha++){
            out.println("<TR>");
            for(int coluna = 0; coluna < nColunas; coluna++){
                out.println("    <TD>"+tabela.getValueAt(linha,coluna)+"</TD>");
            }
            out.println("</TR>");
        }
        
        out.println("</TABLE>");
        out.println("</BODY>");
        out.println("</HTML>");
        
        out.println("");
        out.flush();
        
        JOptionPane.showMessageDialog(null,"O relatório de "+nome+" foi gerado\ncom sucesso em C:/"+nome+".html","Relatório gerado",JOptionPane.INFORMATION_MESSAGE);
    }
    catch(Exception ex){
        JOptionPane.showMessageDialog(null,"Houve uma falha ao tentar gerar o relatório\n"+ex.getMessage(),"Relatório não gerado",JOptionPane.ERROR_MESSAGE);
    }        
}    

}[/color]

gostei da ideia… simples e muito util!
:grin: