Páginacao e exportacao para Excel de uma <table>

5 respostas
A

bom dia,

estou com um metodo que monta uma tabela e devolve os dados para uma pagina .html

public HashMap formSQL() throws Exception{

      String sql = req.getParameter("pSql");
      
      DAOExcelSql dao = new DAOExcelSql();

       List<String> NomeClunas = dao.consultaNmeColunas(sql);
       List<Object> DadosColunas = dao.consultaDadosColunas(sql);
       int count = 0;

       StringBuilder sb = new StringBuilder();

       sb.append("<table style=\"border-style: solid\">");

        for (Iterator<String> it = NomeClunas.iterator(); it.hasNext();) {
        sb.append("<th><b>");
        sb.append(it.next());
        sb.append("</b></th>");
      }
       sb.append("<tr>");
       for (Iterator<Object> it = DadosColunas.iterator(); it.hasNext();) {
           

           if(count < NomeClunas.size()){
           sb.append("<td>");
           sb.append(it.next());
           sb.append("</td>");
           count ++;
           }else if(count == NomeClunas.size()){
               sb.append("</tr>");
               sb.append("<tr>");
               count = 0;
           }

       }
        sb.append("</tr>");
       sb.append("</table>");
      dados.put("COLUNAS", sb.toString());
      dados.put("LISTATESTE", NomeClunas.toString());
      return dados;
  }

eu gostaaria de saber se tem alguma maneira de paginar essa tabela e exportar para ecxel

se alguem puder me ajudar
Muito Obrigado

5 Respostas

robertol

Dê uma olhada na taglib display.

Lá tem todas estas funcionalidades implementadas e vc só precisa configurar algumas parâmetros

http://www.displaytag.org/1.2/

A

minha pagina nao é uma jsp
é um .html
nao da para colocar taglib ne?

robertol

e como é que vc insere este código da Servlet?

A

struts

A

achei esse js em um site:

function XLExport() {
var i;
var j;
var mycell;
var tableID = "tblInnerHTML";

var objXL = new ActiveXObject("Excel.Application");
var objWB = objXL.Workbooks.Add();
var objWS = objWB.ActiveSheet;

for (i=0; i < document.getElementById(tableID).rows.length; i++)
{
    for (j=0; j < document.getElementById(tableID).rows(i).cells.length; j++)
    {
        mycell = document.getElementById(tableID).rows(i).cells(j)
        objWS.Cells(i+1,j+1).Value = mycell.innerText;
       
    
    }
}

//objWS.Range("A1", "L1").Font.Bold = true;

objWS.Range("A1", "Z1").EntireColumn.AutoFit();

//objWS.Range("C1", "C1").ColumnWidth = 50;

objXL.Visible = true;

}

so q nao consigo fazer ele rodar

Criado 8 de fevereiro de 2011
Ultima resposta 8 de fev. de 2011
Respostas 5
Participantes 2