Jump to content
Danado_

Export para Excel (msg de formato errado)

Recommended Posts

Galera gero um relatório que está todo em php para o excel

porém ao abrir o arquivo toda vez aparece: (anexo)

 

meu footer ta assim:

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-Encoding: UTF-8");
header ('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header ('Content-Disposition: attachment; filename="lista_de_convidados.xls"' );
header ("Content-Description: PHP Generated Data" );

 

 

Screenshot_1.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By AlexandrePrezzi
      Bom dia....
      Mudei de planos quanto a minha exportação para excel,  porém continuo tendo problemas...
       
      Os arquivos em questão estao dentro do seguinte caminho...
       
      www/painel/src/view/rrc 
       
      PHPExcel (uma pasta com arquivos da biblioteca)
       
      PHPExcel.php  (arquivo da biblioteca)
      excel.php (arquivo de funções - copiado do exemplo da biblioteca )
      resultPrecoXLS.php  (arquivo que deveria criar a exportação do arquivo )
       
      Quando eu clico  pra gerar o arquivo esta me aparecendo um monte de caracteres na tela  ( em anexo a imagem do erro) 
       
      Abaixo os códigos em questão.
       
      Fico no aguardo se alguém tiver alguma sugestão.
       
      excel.php
       
      <?php function activeErrorReporting(){ error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); date_default_timezone_set('Europe/London'); } function noCli(){ if (PHP_SAPI == 'cli') die('This example should only be run from a Web Browser'); } function getHeaders(){ header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="01simple.xls"'); header('Cache-Control: max-age=0'); // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header ('Pragma: public'); // HTTP/1.0 } ?> resultPrecoXLS.php 
      <?php require_once 'excel.php'; require_once 'request_precos.php'; activeErrorReporting(); //noCli(); require_once 'PHPExcel.php'; $objPHPExcel = new PHPExcel(); // Set document properties $objPHPExcel->getProperties()->setCreator("Zenite Sistemas") ->setLastModifiedBy("Zenite Sistemas") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); // Add some data $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'Cód Prod') ->setCellValue('B1', 'Descrição') ->setCellValue('C1', 'Lista') ->setCellValue('D1', 'Preço'); $row = 2; foreach($_retorno as $res){ $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$row , $res['CODPROD']) ->setCellValue('B'.$row, $res['CODPROD']) ->setCellValue('C'.$row, $res['CODPROD']) ->setCellValue('D'.$row, $res['CODPROD']); $row++; } // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle('Lista de Preços'); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); getHeaders(); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit;  

    • By AlexandrePrezzi
      Boa tarde,
      Estou tentando gerar um arquivo xls ao clicar em um botao "Gerar Excel" (em um primeiro momento estou usando um exemplo pronto básico)
       
      Baixei os arquivos da biblioteca e salvei na raiz do meu projeto
      /vendors (uma pasta com as classes da biblioteca)
      e mais dois arquivos composer soltos na raiz
      composer.json
      composer.lock  
       
      O arquivo que estou trabalhando esta no seguinte caminho 
      C:\wamp64\www\painel\src\view\rrc
       
      resultExcel.php
       
      de modo que para chegar na pasta vendors  eu usei o comando 

      require('/../../../vendor/autoload.php');
       
      Porem quando eu clico no botão para gerar ele me da um erro sugerindo não encontrar esse arquivo (erro na imagem)
       
       
      Obs:  Se eu criar um arquivo resultExcel.php   exatamente igual .. porem na raiz... funciona perfeitamente..... 

      Alguem sabe dizer pq dentro de uma estrutura de pastas da esse problema ?
       
       
      Segue código do resultExcel.php   (um modelo copiado de um exemplo)
       
      <?php // require_once 'vendor/autoload.php'; require('/../../../vendor/autoload.php'); use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\IOFactory; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', '#'); $sheet->setCellValue('B1', 'First'); $sheet->setCellValue('C1', 'Last'); $sheet->setCellValue('D1', 'Handle'); $sheet->setCellValue('A2', 1); $sheet->setCellValue('B2', 'Mark'); $sheet->setCellValue('C2', 'Jacob'); $sheet->setCellValue('D2', 'Larry'); $sheet->setCellValue('A3', 2); $sheet->setCellValue('B3', 'Jacob'); $sheet->setCellValue('C3', 'Thornton'); $sheet->setCellValue('D3', '@fat'); $sheet->setCellValue('A4', 3); $sheet->setCellValue('B4', 'Larry'); $sheet->setCellValue('C4', 'the Bird'); $sheet->setCellValue('D4', '@twitter'); $filename = 'sample-'.time().'.xlsx'; // Redirect output to a client's web browser (Xlsx) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="'.$filename.'"'); header('Cache-Control: max-age=0'); // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1. $writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save('php://output');  
       
       
       
    • By asacap1000
      Salva galera, a tempo eu exporto os dados de consultas realizadas em  nossa intranet, para excel. Porém hoje estamos precisando dividir algumas informações. por exemplo consulto saldo de estoque do cliente, e cada saldo corresponde a um documento, hoje eu trago em apenas uma aba na planilha mas o cliente solicitou para gerar cada documento uma aba ex:

       
      Eu pesquisei mas não encontrei nada que falasse sobre isso.
      hoje utilizo algo simples para exportar.

       
       
       
    • By kendy1290
      Olá! Estou com problema referente a exportação de gráficos do Excel via VBA para apresentação do PowerPoint. A maneira que encontrei, inclusive em várias fontes é de exportar vários gráficos de uma vez ou uma ,em uma nova apresentação. O que estou precisando é de exportar os gráficos do Excel em um arquivo do PowerPoint existente, em slides e locais específicos das apresentações. Se alguém tiver alguma  ideia de como fazer seria de muita ajuda. 
    • By Augustosx
      Desejo realizar a leitura da ultima linha de um arquivo .csv, mas não tenho ideia de como posso realizar esse feito já tentei de diversas formas e em nenhuma obtive sucesso. Se alguém puder me ajudar fico grato.
      8001,BREINFO,autor,"OU=Usuarios,DC=BREINFO,DC=COM",$true,123456A@,$false 8002,BREINFO,autor,"OU=Usuarios,DC=BREINFO,DC=COM",$true,123456A@,$false <?php $file = __DIR__ . '/arquivo.csv'; $csv = file($file); foreach ($csv as $row => $line) { $row++; //Limitador para separar os array $column = str_getcsv($line, ','); //Linha que se será analisada if ($row == 4) { //Faço a captura apenas do ID do array echo $column[0]; } } ?> OBS: $row 4 na operação de if é apenas para ilustração o correto ali seria capturar a ultima linha do CSV, e o $row++ eu tinha a ideia de sempre acrescentar +1 após a 1ª leitura mas deu falha, po isso tive a ideia de sempre ler a ultima linha do arquivo.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.