Servlet Excel - Planilha não abre 0 em numeracao

Fala Galera…
Estou tendo problema em exportar um relatório utilizando o response.setContentType(“application/vnd.ms-excel”);
Tenho alguns campos do tipo string, porém são númericos, por exemplo, gravo um numero de nota fiscal, sendo 000300. A planilha salva apenas 300.

Obrigado.

Creio que o excel ignora os zeros à esquerda, se você quer mantê-los, digita um apóstrofo antes.

Eu fiz isso colocando na minha jsp, porém ele exibiu com o apóstrofo. '000300.

O apóstrofo tem que ser colocado somente na planilha do excel, não no seu JSP

Como?
Quando o arquivo salva, já está sem os 0 iniciais.
Ele exibe em tela corretamente, o problema é quando exporta para o excel.

Posta o código que exporta para o excel.
Nesse código você vai concatenar o apóstrofo no conteúdo das células que devem apresentar o zero à esquerda.

SERVLET

String sql = “WHERE ano =’” + ano + “’ and mes =’” + mes + “’”;

            MovimentoDao m = new MovimentoJdbc();
            List<MovimentoBean> MovimentoArray = m.ListaCompleta(sql);

            if (MovimentoArray.size() > 0) {

                request.setAttribute("fiscal", MovimentoArray);

                response.setContentType("application/vnd.ms-excel");
                                   
                response.setHeader("Content-Disposition", "attachment; filename=movimento_fiscal.xls");
                
                view = request.getRequestDispatcher("listagem_movimento.jsp");
                view.forward(request, response);
            } else {

                view = request.getRequestDispatcher("lista_erro.jsp");
                view.forward(request, response);
            }

MINHA JSP

<%@page import=“br.com.lifemed.bean.MovimentoBean”%>
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

    <title>Movimento Fiscal - Entrada e Saída</title>
</head>

<body>
    <%@include file="sessao.jsp" %> 

    <c:if test="${not empty info}">   
        <script type="text/javascript">alert("${info}" + "\n" + "${info2}")</script>                        
    </c:if>

    <fieldset>
         <legend>Faturamento Analitico</legend>

        <img src="imagens/excel.png" width="40px" height="40px" id="btnExport" title="Exportar para Excel"/> 
        
        <div id="dvData">
            <table id="tabela" class="xy">
                <thead>
                    <tr>
                        <th>tp_mov</th>
                        <th>filial</th>
                        <th>ano</th>
                        <th>mes</th>
                        <th>notafiscal</th>
                        <th>tes</th>                          
                    </tr>
                </thead>
                <tbody>  
                    <c:forEach items="${fiscal}" var="xxx">
                        <tr> 
                            <td><c:out value="${xxx.tp_mov}"/></td>
                            <td><c:out value="${xxx.d2_filial}"/></td>
                            <td><c:out value="${xxx.ano}"/></td>
                            <td><c:out value="${xxx.mes}"/></td>
                            <td><c:out value="${xxx.notafiscal}"/></td>
                            <td><c:out value="${xxx.tes}"/></td>                           
                        </tr> 
                    </c:forEach>
                </tbody>

            </table>           
        </div> 

        <script type="text/javascript" >
            $('#btnExport').click(function () {
                $('.xy').table2excel({
                    exclude: ".noExl",
                    name: "movimento_fiscal",
                    filename: "movimento_fiscal"
                });
            });
        </script>             

</body>

E cadê o código onde você preenche o conteúdo do arquivo movimento_fiscal.xls?

Pelo que entendi ele monta de acordo com a jsp. Ele está certo gera o excel exatamente conforme a tabela em html, o único problema é o 0.
Quando exibe a lista na tela (JSP) Aparece com os 000 iniciais, o problema é no excel ele já vai sem.

O código que gera seu excel é JavaScript e não Java.
Provavelmente você tem algum arquivo de template chamado movimento_fiscal edita esse arquivo e configura sua coluna para ser do tipo texto e não numérica.

Tenho duas formas de gerar esse excel, uma deles é exibindo na tela e clicando nessa função java script.
A outra forma, é enviando diretamente pelo metodo Post do Servlet, onde ele não abre a minha jsp e faz o download direto, apenas pelas linhas do códigos abaixo, inclusive comentando o meu código javascript.

response.setContentType(“application/vnd.ms-excel”);
response.setHeader(“Content-Disposition”, “attachment; filename=movimento_fiscal.xls”);

Galera
Mudei a forma de exportar para excel com o apache poi.
Valeu

1 curtida