Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''gerar_relatorio''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 1 registro

  1. diego.baiao

    [Resolvido] Relatorio com PHPExcel

    Olá bom dia a todos! Pessoal preciso fazer um relatório que venha a gerar um arquivo xlsx automaticamente, de uma consulta do banco de dados, estou usando o "PHPEXcel" para isso. Tenho essa necessidade abaixo: >> Esse arquivo tem que gerar abas automaticamente quando o limite chegar a 1 milhão de linhas sabemos que o excel a partir de 2003 o limite de linhas por "planilha" ou "aba" é de "um milhão" 1k, estou arredondado para baixo, o certo é 1.048.576 linhas por 16.384 colunas por aba/planilha. Exemplo: Então resumindo vou tirar um relatório deu 3 milhões e meio de registros, serão 4 abas/planilhas, sendo 3 abas com um milhão cada e mais 1 aba com meio milhão. Sendo que ele deve fazer tudo sozinho se tiver 10 milhões e assim vai, eu consigo já gerar o arquivo com a consulta vindo do banco, mais não consigo gravar todas as linhas na tabela e muito menos fazer criar as abas automaticamente. *** estou seguindo essa referencia abaixo com uso no phpexcel, neste ensina o uso para criar novas "abas/planilhas" no arquivo a ser gerado mais não consigo colocar em pratica. (http://interessespessoais.com/programacaoweb/criar-varias-folhas-num-ficheiro-excel-com-a-classe-phpexcel/) Dados importantes: 1 - número de linhas por aba é 1 milhão de linhas; 2 - as colunas são fixas então nunca irá ter mais ou menos ao que já tem criado( vai da coluna "A" a "O' são 15 colunas o total); 3 - possui um cabeçalho fixo, vou deixar fictício esses dados não são relevantes ( serão eles mesmos "A', "B", "C" ... "O"). >> no código abaixo o cabeçalho vai ser sempre a primeira linha logo abaixo da coluna como fiz ali "A1" chamei de "id" seria a primeira delas. >> nesse caso para não ficar pesado a consulta e demora no resultado eu estou trazendo 15 linhas(registros) minha tentativa é gera 3 abas com 5 registros em cada uma delas. Dando certo ai mudo para a suposta quantidade de registros que queira alcançar. hehe Segue meu código abaixo já gerando o relatório porem com uma linha editada rs. "Mais ao menos gera no formato certo sem erros". <?php /* Rodando esta gravando o xlsx */ require_once "conexao.php"; require_once 'Classes/PHPExcel.php'; // DEFINE O FUSO HORARIO COMO O HORARIO DE BRASILIA date_default_timezone_set('America/Sao_Paulo'); //cria a conexao com o banco $conexao_pdo = new PDO("pgsql:host=$host dbname=$dbname user=$user password=$senha"); //laço para exibir se a conesão foi bem sucedida if ($conexao_pdo) { echo 'Conexão com o PostgreSQL realizada com sucesso!!<br>'; } else { echo 'Falha na conexão com o PostgreSQL!'; } // grava milesegundo no arquivo gerado $data_hora = date('d/m/Y H:i:s', time()); $microtime = microtime(true); $time = explode(".", $microtime); $mSecs = $time[1]; if (strlen($mSecs) == 3){ $mSecs = $mSecs."0"; }elseif (strlen($mSecs) == 2){ $mSecs = $mSecs."00"; } function limpaData($data_hora){ $rem = array ('-',':',' ','/','.'); $sub = array ('_','_','_','_','_'); return str_replace($rem, $sub, $data_hora); } $data = limpaData($data_hora)."_".$mSecs; //pega data e concatena com microsegundos //consulta via pdo // nesse caso para nao ficar pesado trago 15 linhas minha tentativa é gera 3 abas com 5 registros em cada uma delas $consulta = $conexao_pdo->query( "SELECT * FROM ENVIOS.ENVIO_CONTATO LIMIT 15" ); //muda o modo padrão de busca para um objeto PDOStatement $consulta->setFetchMode(PDO::FETCH_ASSOC); $count = $consulta->rowCount(); // pega o numero de registros na consulta if ($count > 0) { while($row = $consulta->fetch()) { // Criar um novo objecto PHPExcel $objPHPExcel = new PHPExcel(); // Inserir dados nas células A1 e A2 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'id') ->setCellValue('A2', $row['id']); } } // // Indicação da criação do ficheiro $file = $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $file->save("downloads\periodo_" .$data. ".xlsx"); ?> O arquivo é gerado na pasta "downloads" dentro do projeto, porém com apenas 1 dado ( so fiz ele ir na primeira celular "A" e gravar um dado no caso um "id" da minha consulta, teria que fazer isso com o resto das informações, "B" os "nomes", "C" as "idades" e assim vai... não sei como fazer um loop nessa situação com foreach, while, for, etc... * O meu problema esta sendo mais com logica de programação vou estudar para ver se consigo ir adiante, mais se conseguirem derem uma força eu agradeço. Segue duas prints abaixo: 1 - do arquivo gerado >> http://prntscr.com/hv37mh 2 - do arquivo aberto >> http://prntscr.com/hv385u
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.