Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Exportação para Excel da Grid

18 de Abril de 2013, 10:27 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 7 vezes

Bom dia,

Estou com um problema na exportação para Excel que aparece no rodapé da Grid, na verdade são dois problema que eu detectei. Primeiro, é que a planilha está sendo gravada no diretório raiz do sistema, e antigamente era gravada no diretório tmp do diretório base. E o segundo problema é que a última linha da tabela está sendo duplicada na planilha exportada. Alguém sabe o que é o problema? Eu andei olhando o código fonte vi que é gravado no diretório tmp um arquivo com extensão .go, que eu acho que é um JSON com os dados da planilha. Nesse arquivo a linha ainda não está duplicada. Depois disso é chamada uma função que efetivamente exporta os dados para a planilha que é a fwExportGrid2Excel. Mas não tive tempo para olhar a fundo essa função. Achei melhor compartilhar logo o problema, pois pode ser que alguém já esteja trabalhando nisso. Eu me lembro que não ocorria esses problema em algumas releases atrás, e lembro também que vi alguma atualização que era a respeito da exportação para Excel.

Conto com a colaboração de todos para resolvermos esse problema, mais uma vez.

Att.

Eduardo Cajueiro 

Autor: Eduardo Cajueiro


22 comentários

  • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
    18 de Abril de 2013, 16:51

     

    Pessoal,

    Aprofundando mais no assunto, descobri que o erro está no arquivo \base\classe\FormDin4.xls.php

    E fiz as seguintes alterações para corrigir os problemas:

    - Linha 80:

    De:  $fileName = 'Planilha '.date('d-m-Y his').'.xls';

    Para: $fileName = $dirBase . 'tmp/Planilha '.date('d-m-Y His').'.xls';

    * Inclusão do caminho do diretório tmp e a mudança do parâmetro da função date de h para H, para gerar a data e hora com o formato de 24 horas. 

    - Linha 155:  

    Comentar a linha: $excel->writeLine($a); 

    * Pois esse comando já está sendo feito dentro do loop e do lado de fora está repetido.

    - Linha 166:

    De:  header ("Content-Disposition: attachment; filename=\"{$fileName}\"" );

    Para: header ("Content-Disposition: attachment; filename=\"".basename($fileName)."\"" ); 

    * Isso é para salvar o arquivo só com o nome, e não incluir o path.

    Espero ter ajudado, e que essas alterações sejam incorporadas ao novo release o mais breve possível.

    Att.

    Eduardo Cajueiro 

Essa comunidade não possui posts nesse blog