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 fideles
      Caros,
       
      Tenho 6 inputs para preencher que recebo como base uma planilha em Excel, tenho que fazer manualmente cada coluna no seu respectivo input, alguém já tentou ou sabe se tem alguma forma de copiar a linha do Excel e jogar nos inputs? Ou seja, ao copiar a linha do Excel, ele joga as 6 colunas com os resultados dentro dos inputs. 
    • By Junior Ni10
      Bom dia,
       
      tenho uma necessidade matemática de passar alguns valores em $x e $y e ele me retornar o mesmo resultado que a função INCLINAÇÃO do excel retorna.
       
      $y[] = 10; $y[] = 23; $y[] = 25; $y[] = 27; $y[] = 56; $y[] = 55; $y[] = 84; $y[] = 87; $y[] = 115; $y[] = 115; $y[] = 125; $y[] = 132; $y[] = 138; $y[] = 153; $y[] = 181; $y[] = 191; $y[] = 198; $y[] = 199; $y[] = 201; $y[] = 205; $x[] = 3; $x[] = 8; $x[] = 10; $x[] = 12; $x[] = 24; $x[] = 25; $x[] = 39; $x[] = 40; $x[] = 55; $x[] = 56; $x[] = 61; $x[] = 64; $x[] = 66; $x[] = 73; $x[] = 90; $x[] = 93; $x[] = 96; $x[] = 97; $x[] = 98; $x[] = 99; Tenho esse array acima com os dados, no excel o retorno é 1,996159717, preciso que minha aplicação retorne o mesmo.
    • By biakelly
      Oi pessoal.
       
      Hoje trago uma dúvida que ainda preciso saber como começar.
       
      Tenho um cliente que tem um colégio de idioma pequeno onde ele possui atualmente 20 alunos
      Por algum motivo que não sei explicar ele registra notas diárias para os alunos (sim isso é estranho), portanto na planilha dele tem duas colunas: Nome do aluno e nota (a nota vai de 5 a 10)
       
      Ele quer subir esse excel para um banco de dados e exibir "notas do dia" para os alunos.
       
      Exemplo aluno entra na página e lá tem diversos links (data e horário) o aluno clica nele e exibe a nota de todos alunos na página.
       
      Bem, alguma idéia de como posso fazer isso?
       
      Sim, ja tentei convence-lo para construir um sistema onde cada aluno possa ver sua própria nota, mas não consegui :/ 
    • 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.

       
       
       
×

Important Information

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