Galera montei um relatorio no excel que tem o seguinte forma quando exportado
Quatidades --------Domingo–Segunda–Terca–Quarta–Quinta–Sexta–Sabado
QTD Pessoas
QTD Dias
QTD Vendas
antes de exportar o usuario pode escolher uma data De… Até para exibir as informações dentro do periodo de data escolhido, esse modelo de cabeçalho e estatico não muda nunca, agora não sei como eu faço para que quando o usuario escolher um periodo de data o relatorio exibir no dia correspomdente ao que esta no cabeçalho com os dias semanal pois as informações vão aparcer apenas na coluna do dia da semana.
exemplo de o usuario escolher a data de 26/06/2009 Ate 26/06/2009 as informações aparecer na coluna Sexta
Fala Robson, blz, então, posta o codigo que vc fez para gerar a planilha, ou manda para min, pra dar uma olhada.
Eai Luciano blz meu
então o codigo e esse aqui que gera a planilha e exibe os dados
//Cabeçalho horizontal
HSSFSheet hssSheet = arquivoXLS.createSheet("Vendas Geral dados diários");
cabecalho = hssSheet.createRow(0);
cabecalho.createCell(0).setCellValue(new HSSFRichTextString("Dia da Semana"));
cabecalho.createCell(1).setCellValue(new HSSFRichTextString("Domingo"));
cabecalho.createCell(2).setCellValue(new HSSFRichTextString("Segunda"));
cabecalho.createCell(3).setCellValue(new HSSFRichTextString("Terça"));
cabecalho.createCell(4).setCellValue(new HSSFRichTextString("Quarta"));
cabecalho.createCell(5).setCellValue(new HSSFRichTextString("Quinta"));
cabecalho.createCell(6).setCellValue(new HSSFRichTextString("Sexta"));
cabecalho.createCell(7).setCellValue(new HSSFRichTextString("Sabado"));
cabecalho.createCell(8).setCellValue(new HSSFRichTextString(""));
// Cabeçalho Vertical
HSSFRow linha1 = hssSheet.createRow(1);
linha1.createCell(0).setCellValue(new HSSFRichTextString("Data"));
HSSFRow linha2 = hssSheet.createRow(2);
linha2.createCell(0).setCellValue(new HSSFRichTextString("Nº Operadores"));
HSSFRow linha3 = hssSheet.createRow(3);
linha3.createCell(0).setCellValue(new HSSFRichTextString("Nº Logradouro"));
HSSFRow linha4 = hssSheet.createRow(4);
linha4.createCell(0).setCellValue(new HSSFRichTextString("Venda"));
HSSFRow linha5 = hssSheet.createRow(5);
linha5.createCell(0).setCellValue(new HSSFRichTextString("Nº Operadores que Venderam"));
HSSFRow linha6 = hssSheet.createRow(6);
linha6.createCell(0).setCellValue(new HSSFRichTextString("Média total por operador"));
HSSFRow linha7 = hssSheet.createRow(7);
linha7.createCell(0).setCellValue(new HSSFRichTextString("Média de operadores que venderam"));
// Exibe os dados
i = 2;
for(RelatorioTO relaTO : relatorios.get("relatorioVendaGeralDiarias")){
linha1.createCell(1).setCellValue(new HSSFRichTextString(new SimpleDateFormat("dd/MM/yyyy").format(dataDe)) + " Até " + (new SimpleDateFormat("dd/MM/yyyy").format(dataAte)));
linha2.createCell(1).setCellValue(new HSSFRichTextString(relaTO.getNumeroOperadores().toString()));
linha3.createCell(1).setCellValue(new HSSFRichTextString(relaTO.getNumeroLogradouros().toString()));
linha4.createCell(1).setCellValue(new HSSFRichTextString(relaTO.getVendidos().toString()));
linha5.createCell(1).setCellValue(new HSSFRichTextString(relaTO.getNumeroOperadoresVenderam().toString()));
double mediaPorOperador = relaTO.getVendidos() / relaTO.getNumeroOperadores();
linha6.createCell(1).setCellValue(new HSSFRichTextString(String.valueOf(mediaPorOperador)).toString());
double mediaOperadorVenderam = relaTO.getVendidos() / mediaPorOperador;
linha7.createCell(1).setCellValue(new HSSFRichTextString(String.valueOf(mediaOperadorVenderam)).toString());
i++;
}
[quote=robsonsan][/quote] eu fiz isso semana passada, usando POI no meu caso eu faço uma chamada javascript para uma servlet e monto minha planilha no servlet e retorno para o excel na pagina, quando precisei usar parâmetros simplesmente mandei via GET ao chamar o servlet e dependendo dos dados enviados eu faço a consulta…
Luciano te enviei por email do bol a planilha que e exportada pelo codigo que esta aqui, como não sei anexar ela aqui te enviei por email
valeu.
jc.thalys gostaria que vc apresentasse um solução para meu problema.
[quote=robsonsan]Luciano te enviei por email do bol a planilha que e exportada pelo codigo que esta aqui, como não sei anexar ela aqui te enviei por email
valeu.
jc.thalys gostaria que vc apresentasse um solução para meu problema.[/quote]
kra é o seguinte…
função javascript:
function openWinInstal() {
var typeSearch = document.getElementById("typeSearch").value;
var dtOpen = document.getElementById("dtOpening").value;
var servlet = "<%= renderResponse.encodeURL(renderRequest.getContextPath() + "/exportExcel")%>";
servlet += '?typeSearch='+typeSearch+'&dtOpen='+dtOpen+'';
window.open(servlet,'','fullscreen=yes,scrollbars=yes');
}
e na servlet você precisa colocar:
response.setContentType("application/vnd.ms-excel");
/**
* Usei o OutputStream para dar a resposta
* e esse wb é um HSSFWorkbook.... dai endiante é POI...
* HSSFWorkbook wb = new HSSFWorkbook();
* HSSFSheet planilha= wb.createSheet("titulo da planilha");
*/
OutputStream out = response.getOutputStream();
wb.write(out);
out.close();
jc.thalys acho que vc não entendeu minha pergunta, pois acho que não e essa a solução não preciso de java script e apenas no java mesmo e essa parte de baixo do codigo que vc mandou a para exportar o execel que não e o meu caso
Robson, manda a classe toda para min, tenho que ver onde vem alguns atributos
Solução:
//Cabeçalho horizontal
HSSFSheet hssSheet = arquivoXLS.createSheet(“Vendas Geral dados diários”);
cabecalho = hssSheet.createRow(0);
cabecalho.createCell(0).setCellValue(new HSSFRichTextString(“Dia da Semana”));
cabecalho.createCell(1).setCellValue(new HSSFRichTextString(“Domingo”));
cabecalho.createCell(2).setCellValue(new HSSFRichTextString(“Segunda”));
cabecalho.createCell(3).setCellValue(new HSSFRichTextString(“Terça”));
cabecalho.createCell(4).setCellValue(new HSSFRichTextString(“Quarta”));
cabecalho.createCell(5).setCellValue(new HSSFRichTextString(“Quinta”));
cabecalho.createCell(6).setCellValue(new HSSFRichTextString(“Sexta”));
cabecalho.createCell(7).setCellValue(new HSSFRichTextString(“Sabado”));
cabecalho.createCell(8).setCellValue(new HSSFRichTextString(""));
// Cabeçalho Vertical
HSSFRow linha1 = hssSheet.createRow(1);
linha1.createCell(0).setCellValue(new HSSFRichTextString(“Data”));
HSSFRow linha2 = hssSheet.createRow(2);
linha2.createCell(0).setCellValue(new HSSFRichTextString("Nº Operadores"));
HSSFRow linha3 = hssSheet.createRow(3);
linha3.createCell(0).setCellValue(new HSSFRichTextString("Nº Logradouro"));
HSSFRow linha4 = hssSheet.createRow(4);
linha4.createCell(0).setCellValue(new HSSFRichTextString("Venda"));
HSSFRow linha5 = hssSheet.createRow(5);
linha5.createCell(0).setCellValue(new HSSFRichTextString("Nº Operadores que Venderam"));
HSSFRow linha6 = hssSheet.createRow(6);
linha6.createCell(0).setCellValue(new HSSFRichTextString("Média total por operador"));
HSSFRow linha7 = hssSheet.createRow(7);
linha7.createCell(0).setCellValue(new HSSFRichTextString("Média de operadores que venderam"));
// Exibe os dados
Calendar calendar = new GregorianCalendar(dataDe.getYear(), dataDe.getMonth(), dataDe.getDay());
int dia = calendar.get(Calendar.DAY_OF_WEEK)-1;
for(RelatorioTO relaTO : relatorios.get("relatorioVendaGeralDiarias")){
linha1.createCell(dia).setCellValue(new HSSFRichTextString(new SimpleDateFormat("dd/MM/yyyy").format(dataDe)) + " Até " + (new SimpleDateFormat("dd/MM/yyyy").format(dataAte)));
linha2.createCell(dia).setCellValue(new HSSFRichTextString(relaTO.getNumeroOperadores().toString()));
linha3.createCell(dia).setCellValue(new HSSFRichTextString(relaTO.getNumeroLogradouros().toString()));
linha4.createCell(dia).setCellValue(new HSSFRichTextString(relaTO.getVendidos().toString()));
linha5.createCell(dia).setCellValue(new HSSFRichTextString(relaTO.getNumeroOperadoresVenderam().toString()));
double mediaPorOperador = relaTO.getVendidos() / relaTO.getNumeroOperadores();
linha6.createCell(dia).setCellValue(new HSSFRichTextString(String.valueOf(mediaPorOperador)).toString());
double mediaOperadorVenderam = relaTO.getVendidos() / mediaPorOperador;
linha7.createCell(dia).setCellValue(new HSSFRichTextString(String.valueOf(mediaOperadorVenderam)).toString());
}
valeu Luciano deu certo valeu
Pessoal boa tarde. gostaria de saber como eu consigo exportar dados de um servlet para excel. Tenho um tela de consulta que me retorna em uma
dados do banco montada por uma servlet. Gostaria de saber como exporto esses dados contidos na para excel.
Estou postando os códigos para o melhor entendimento.
<%@ page isELIgnored=“false”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt”%>
<%@page import=“java.text.SimpleDateFormat”%>
<%@page import=“java.util.Date”%>
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
<%@page import=“java.util.List”%>
<%@page import=“modelo.Elemento”%>
<%@page import=“modelo.AssociaRequisito”%>
<base>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link type="text/css" rel="stylesheet" href="/GCM/css/style.css" media="screen" />
<link type="text/css" rel="stylesheet" href="/GCM/css/tabelas.css" media="screen" />
<script type="text/javascript" src="/GCM/js/geral.js"></script>
<script type="text/javascript" src="/GCM/js/formataCampos.js"></script>
<title>Consulta Gerencial</title>
<script type="text/javascript">
function habilitaCampo(opcao){
window.document.getElementById('nome_programa').value = '';
window.document.getElementById('id_requisito').value = '';
configuraMensagemNaTela('');
if (opcao == 'P'){
window.document.getElementById('programa').style.display = 'block';
window.document.getElementById('requisito').style.display = 'none';
} else {
window.document.getElementById('requisito').style.display = 'block';
window.document.getElementById('programa').style.display = 'none';
}
}
function validar(){
var campo;
for (var i=0; i < window.document.getElementById('formulario').length; i++){
campo = window.document.getElementById('formulario')[i];
if (campo.type == 'radio' && campo.name == 'tipo' && campo.checked && campo.value == 'P'){
return validarPorPrograma();
} else if (campo.type == 'radio' && campo.name == 'tipo' && campo.checked && campo.value == 'R'){
return validarPorRequisito();
}
}
return false;
}
function submeterForm(){
if (validar()){
submeter('visualizar');
} else {
if (window.document.getElementById('tipo').innerHTML == ''){
configuraMensagemNaTela("Selecione uma opção.");
}
}
}
function validarPorPrograma(){
if (window.document.getElementById('nome_programa').value == ''){
configuraMensagemNaTela("Nome do Programa é obrigatório!");
return false;
}
return true;
}
function validarPorRequisito(){
if (window.document.getElementById('id_requisito').value == ''){
configuraMensagemNaTela("Códido do Requisito é obrigatório!");
return false;
}
return true;
}
function submeter(comando){
window.document.getElementById("comando").value = comando;
window.document.getElementById('formulario').submit();
}
function configuraMensagemNaTela(mensagem){
window.document.getElementById("mensagemRetorno").innerHTML = mensagem;
}
function habilitar(idCampo){
window.document.getElementById(idCampo).style.display = 'block';
}
function desabilitar(idCampo){
window.document.getElementById(idCampo).style.display = 'none';
}
</script>
</head>
<body>
<div id="container">
<div id="header" title=""></div>
<div id="mainnav">
<p class="barNav">
<!--<a href="/GCM/jsp/consultaGerencial.jsp">Consulta Gerencial </a>-->
<a href="/GCM/jsp/consulta.jsp">Consulta </a>
<a href="/GCM/jsp/cadastro.jsp">Controle de Bloqueio</a>
<a href="/GCM/jsp/cadastroprograma.jsp">Cadastro de Programa</a>
<a href="/GCM/jsp/cadastroRequisito.jsp">Cadastro de Requisito</a>
<a href="/GCM/jsp/AssociaProgramaRequisito.jsp">Associar Requisitos</a>
<a href="/GCM/jsp/RelatorioProgReq.jsp">Relatório</a>
</div>
<div id="mainnav2"></div>
<div class="linhaLabel" style="font-family: arial;size: 16px; font-style: italic; " >
Relatório</div>
<div id="menu"><!-- tabela a direita --></div>
<div id="contents">
<div class="blogentry">
<div class="textoBox">
<div class="divlinhaLabelLabel">
<form name="elemento2" action="/GCM/ServletRelatorioProgReq" method="post" id="formulario">
<input type="hidden" name="comando" id="comando" />
<input type="radio" name="tipo" id="tipo" value="P" onclick="habilitaCampo(this.value);">Por Programa
<input type="radio" name="tipo" id="tipo" value="R" onclick="habilitaCampo(this.value);">Por Requisito
<br></br>
<div class="divlinha" id="programa" style="display:none">
<div class="linhaLabel" >Nome do Programa:</div>
<input type="text" name="nome_programa" id="nome_programa" size="10px;" maxlength="10" value="${requestScope.valuePrograma}"></input>
</div>
<div class="divlinha" id="requisito" style="display:none">
<div class="divColuna2">
<div class="linhaLabel">Código do Requisito:</div>
<input type="text" name="id_requisito" id="id_requisito" size="10px;" maxlength=12 [code]value="${requestScope.valueRequisito}"/>
</div>
</div>
<script type="text/javascript">
var opcaoSelecionada;
<c:if test="${requestScope.tipo == 'P'}">
habilitar('programa');
opcaoSelecionada = 'P';
</c:if>
<c:if test="${requestScope.tipo == 'R'}" >
habilitar('requisito');
opcaoSelecionada = 'R';
</c:if>
var campo;
for (var i=0; i < window.document.getElementById('formulario').length; i++){
campo = window.document.getElementById('formulario')[i];
if (campo.type == 'radio' && campo.name == 'tipo' && campo.value == opcaoSelecionada){
campo.checked = true;
break;
}
}
</script>
<hr class="linhaFinalBox"/>
<div class="btnGeral">
<input name="comando" type="button" value="Visualizar" onclick="submeterForm()"/>
</div>
<c:if test="${!empty requestScope.resultadoConsulta}">
<table class="dados" width="100%" >
<thead>
<tr>
<th align="center">Programa</th>
<th align="center">Requisito</th>
<th align="center">Descrição</th>
</tr>
<thead>
<tbody>
<c:forEach var="relProgReq" varStatus="status" items="${resultadoConsulta}">
<tr>
<td><c:out value="${relProgReq.programa.nome_programa}"/></td>
<td><c:out value="${relProgReq.requisito.id_requisito}"/></td>
<td><c:out value="${relProgReq.requisito.descricao}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
<br>
<table border=0>
<tr>
<td>
<a href="/GCM/jsp/RelatorioProgReq.jsp?exportToExcel=YES">

</td>
<td>
<a href="/GCM/jsp/RelatorioProgReq.jsp?exportToExcel=YES"><img alt="" src="/GCM/img/logopdf.png" title="Exportar para PDF"></a>
</td>
</tr>
</table>
</c:if>
<c:if test="${!empty requestScope.resultadoConsulta2}">
<table class="dados" width="100%" >
<thead>
<tr>
<th align="center">Requisito</th>
<th align="center">Descrição do Requisito</th>
<th align="center">Programa</th>
</tr>
</thead>
<tbody>
<c:forEach var="relProgReq" varStatus="status" items="${resultadoConsulta2}">
<tr>
<td><c:out value="${relProgReq.requisito.id_requisito}"/></td>
<td><c:out value="${relProgReq.requisito.descricao}"/></td>
<td><c:out value="${relProgReq.programa.nome_programa}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
<br>
<table border=0>
<tr>
<td>
<a href="/GCM/jsp/RelatorioProgReq.jsp?exportToExcel=YES"><img alt="ExportarExcel" src="/GCM/img/logoexcel.jpg" title="Exportar para Excel" onclick=""></a>
</td>
<td>
<a href="/GCM/jsp/RelatorioProgReq.jsp?exportToExcel=YES"><img alt="" src="/GCM/img/logopdf.png" title="Exportar para PDF"></a>
</td>
</tr>
</table>
</c:if>
<span id="mensagemRetorno" style="color: red">
<%=request.getAttribute("mensagemRetorno") != null ?
request.getAttribute("mensagemRetorno").toString() : "" %>
</span>
<br></br>
</form>
</div>
</div>
</div>
</div>
<div id="footer"></div>
<div class="rodape">
<div align="center">Copyright © Indra 2012 - Todos os Direitos Reservados.</div>
</div>
</div>
</body>
o relatório funciona normal só nao estou conseguindo exportar. Alguém pode ajudar
pessoal é só desconsiderar o código dentro do a href das imagens.
iae Renato blz,
cara teria como vc editar esse post seu ai com o codigo e colocar as tags de codigo aqui do guj pra ficar mas facil a visualizacao?
vlw.
Não compreendi o que você me pediu para fazer ainda sou novo no forum e não conheço como faz para postar como o nosso amigo jc.thalys postou por exemplo. eu selecionei todo o fonte da minha página jsp para que vocês pudessem entender o problema. por favor me explique como devo postar minha dúvida para que possa colocá-la da melhor maneira possível.
Vê se isso ajuda.
Grato.