Jump to content

Recommended Posts

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');

 

 

 

 

erroPHP.png

Share this post


Link to post
Share on other sites

Oi boa tarde, o seu require para o autoload da vendor está errado, você precisa remover a primeira / porque se não ele vai começar a buscar na raíz do www/, você precisa colocar:

 

ps.: verifica quantas pastas você tem que voltar a partir do arquivo para a pasta vendor, aqui ele vai voltar 3 diretórios, olha se vai cair na pasta do vendor.

 

require('../../../vendor/autoload.php');

 

Share this post


Link to post
Share on other sites
15 horas atrás, André Severino disse:

Oi boa tarde, o seu require para o autoload da vendor está errado, você precisa remover a primeira / porque se não ele vai começar a buscar na raíz do www/, você precisa colocar:

 

ps.: verifica quantas pastas você tem que voltar a partir do arquivo para a pasta vendor, aqui ele vai voltar 3 diretórios, olha se vai cair na pasta do vendor.

 


require('../../../vendor/autoload.php');

 

bom dia tudo bom ?  Pelo que vi estaria certo os retornos, inclusive conforme eu vou digitando o editor mostra as pastas. O que eu to imaginando é que o problema ta nesse arquivo autoload.php,  alguma chamada nele "bagunça" os caminhos .... mas vou tentar dar uma olhada novamente.

 

Obrigado.

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 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.
    • By martinsfm
      Boa Noite senhores(as), tenho uma missão na minha empresa e estou sem saída ainda no momento.
      A TI disponibilizou alguns endereços para criação no WordPress, bom com isso tenho que fazer que uma planilha que fica na rede apareça nessa pagina e se atualize a cada X seg/min bom até ai entendi, tudo certo. Porem a questão é como vou colocar uma planilha que está na rede interna dentro da pagina. Não consigo pensar em nada sem ter que ficar fazendo Upload, preciso de algo automático, o arquivo deve ser carregado constantemente.
      Qualquer dica será bem vinda!
      Desde de já agradeço a atenção de todos.
       
      att,
      Fabrício Martins

×

Important Information

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