it-swarm-pt.tech

phpexcel para baixar

olá eu sou novo para phpexcel, e eu queria saber se há alguma maneira de enviar o Excel eu criei para o download de clientes sem salvá-lo no meu servidor ou para excluí-lo logo após ele faz o download

eu estou tentando criar um "botão de exportação" em uma página que dará ao usuário um "pop-up" com o Excel que ele quer que acabei de criar.

agora depois de criar a tabela que eu faço:

$objXLS->getActiveSheet()->getColumnDimension("A")->setAutoSize(true);
$objXLS->getActiveSheet()->getColumnDimension("B")->setAutoSize(true);

$objXLS->getActiveSheet()->setTitle('Test Stats');

$objXLS->setActiveSheetIndex(0);

$objWriter = PHPExcel_IOFactory::createWriter($objXLS, 'Excel5');
$objWriter->save(__DIR__."/test1.xls");

mas isso salva no meu servidor

obrigado

75
Dvir Levy

Em vez de salvá-lo em um arquivo, salve-o em php://outputDocs :

$objWriter->save('php://output');

Isso irá enviá-lo para o navegador.

Você quer adicionar alguns cabeçalhosDocs primeiro, como é comum em downloads de arquivos, então o navegador sabe qual tipo de arquivo é e como ele deve ser nomeado (o nome do arquivo):

// We'll be outputting an Excel file
header('Content-type: application/vnd.ms-Excel');

// It will be called file.xls
header('Content-Disposition: attachment; filename="file.xls"');

// Write file to the browser
$objWriter->save('php://output');

Primeiro faça os cabeçalhos e depois salve. Para os cabeçalhos do Excel, veja também a seguinte questão: Configurando o tipo mime para documento do Excel .

162
hakre
$Excel = new PHPExcel();
header('Content-Type: application/vnd.ms-Excel');
header('Content-Disposition: attachment;filename="your_name.xls"');
header('Cache-Control: max-age=0');

// Do your stuff here

$writer = PHPExcel_IOFactory::createWriter($Excel, 'Excel5');

// This line will force the file to download
$writer->save('php://output');
22
matino

Use esta chamada

$objWriter->save('php://output');

Para imprimir a folha XLS na página em que você está, apenas certifique-se de que a página em que você está não tenha outros ecos, impressões e saídas.

5
JoshStrange

PARA USO DO XLSX

SET IN $ xlsName nome do XLSX com extensão. exemplo: $ xlsName = 'teste.xlsx';

$objPHPExcel = new PHPExcel();

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.ms-Excel');
header('Content-Disposition: attachment;filename="'.$xlsName.'"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');

para uso XLS

SET IN $ xlsName nome do XLS com extensão. Exemplo: $ xlsName = 'teste.xls';

$objPHPExcel = new PHPExcel();

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-Excel');
header('Content-Disposition: attachment;filename="'.$xlsName.'"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
5
Rogerio de Moraes

posible você já resolveu o seu problema, de qualquer forma eu espero que isso ajude você.

todos os arquivos baixados começam com linha vazia, no meu caso, onde quatro linhas vazias, e isso cria um problema. Não importa se você trabalha com readfile(); ou save('php://output');, isso pode ser corrigido adicionando ob_start(); no início do script e od_end_clean(); antes do readfile(); ou save('php://output');.

4
Efren Gutierrez Sosa
 header('Content-type: application/vnd.ms-Excel');

 header('Content-Disposition: attachment; filename="file.xlsx"');

 header('Cache-Control: max-age=0');

 header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

 header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');

 header ('Cache-Control: cache, must-revalidate');

 header ('Pragma: public');

 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

 $objWriter->save('php://output');
3
harsimer