| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/03/2005 14:57:14
|
renandpf
Debugger
![[Avatar]](/images/avatar/6f6d7ea73f8b34354a3ecc69f872abfd.png)
Membro desde: 07/03/2005 17:43:07
Mensagens: 62
Offline
|
Galera,
tenho que passar um arquivo Excel para uma página.
Para a cração do arquivo, estou usando a API "Java Excel API"(jxl.jar). Criar o arquivo até que é tranquilo, mas não stou conseguindo recupra-lo na página...
O fluxo é o seguinte: A página chama o Action que por sua vez chama um servlet que trata a exibição do xls.
Quando a página é submetida, o Browser pergunta para confirmar o download ou abrir o documento... Após, o excel abre mas informa que não é possivel abrir o arquivo!
Ai vai a Servlet reponsável por isso:
/*
* Created on Mar 9, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package br.com.sle.sca.relat;
import java.io.*;
import java.awt.*;
import java.util.ArrayList;
import javax.servlet.http.*;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import java.io.File;
import java.util.Date;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import br.com.sle.sca.model.Relatorio;
/**
* @author brunotarcha
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class RelatorioExcelServlet extends HttpServlet {
private static final int FRAGMENT_SIZE = 50;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try {
ArrayList relatorios = (ArrayList)request.getAttribute("relatorios");
ByteArrayOutputStream baos = writeReportAsExcel(relatorios, 600, 350);
//HTTP Headers
response.setHeader("Cache-Control", "max-age=30");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition","inline; filename=relatorio_" + System.currentTimeMillis() + ".xls");
response.setContentLength(baos.size());
//Enviar o documento XLS
ServletOutputStream sos = response.getOutputStream();
baos.writeTo(sos);
sos.flush();
sos.close();
} catch (Exception e)
{
response.getOutputStream().println("<BR><B>Ocorreu um erro ao exibir o relatório. Favor contate o administrador do sistema</B>");
}
}
private ByteArrayOutputStream writeReportAsExcel(ArrayList relatorios, int width, int height)
throws IOException, RowsExceededException, WriteException
{
ByteArrayOutputStream baosExcel = new ByteArrayOutputStream();
// Cria o arquivo
WritableWorkbook workbook = Workbook.createWorkbook(new File("relatorio_"+ System.currentTimeMillis() + ".xls"));
// Cria a camada de acesso
WritableSheet sheet = workbook.createSheet("First Sheet", 0);
//Insere o valor em A3 da tabela(0,2) -> 0==Coluna / 2==linha
Label label1 = new Label(0, 0, "Colaborador");
Label label2 = new Label(0, 1, "Categoria");
Label label3 = new Label(0, 2, "tarefa");
Label label4 = new Label(0, 3, "Projeto");
Label label5 = new Label(0, 4, "Horas");
sheet.addCell(label1);
sheet.addCell(label2);
sheet.addCell(label3);
sheet.addCell(label4);
sheet.addCell(label5);
//Escreve o arquivo
workbook.write();
//Fecha o arquvo
workbook.close();
return baosExcel;
}
}
Alguém me ajude!
This message was edited 1 time. Last update was at 11/03/2005 15:00:15
|
Renan Del Puppo Furtado
Java Micro Edition Certified (SCMAD 1.0)
Java Certified (SCJP 1.4) |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/05/2007 23:24:10
|
bebad
JavaEvangelist
![[Avatar]](/images/avatar/ca49dcab7677fd5d3108f9a9b250d604.jpg)
Membro desde: 27/07/2006 19:56:35
Mensagens: 303
Offline
|
Bro, eu realmente não sei como poderia te ajudar em seu codigo,
MAS eu sei dee um framework chamado displayTag que pode te ajudar muito na sua tarefa.
Att,
Ref:
http://displaytag.homeip.net/displaytag-examples-1.1/example-new-export.jsp
|
Admin.. PATCH your box now, or DIE!!!
Oracle Certified Associate, Java SE 5/SE 6
Oracle Certified Professional, Java SE 6 Programmer
Oracle Certified Professional, Java ME 1 Mobile Application Developer
Oracle Certified Expert, Java EE6 Web Services Developer
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional, Java EE 5 Web Component Developer
Oracle Certified Professional, Java EE 5 Business Component Developer
representing the old school defacers brazil:
red_eye
ATH
ir4dex
hax0rs lab
IoN
r00t_system
kernel_panic
bebad was here. |
|
|
 |
|
|
|
|