Pertanyaan phpexcel untuk mengunduh


halo saya baru di phpexcel, dan saya bertanya-tanya apakah ada cara mengirim excel yang saya buat untuk unduhan klien tanpa menyimpannya di server saya atau menghapusnya setelah dia mendownloadnya

Saya mencoba untuk membuat "tombol ekspor" pada halaman yang akan memberi pengguna "pop-up" dengan excel yang dia inginkan yang baru saja saya buat.

sekarang setelah saya membuat tabel yang saya lakukan:

$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");

tapi itu menyimpannya ke server saya

Terima kasih


75
2017-12-19 19:11


asal


Jawaban:


Alih-alih menyimpannya ke file, simpan ke php://outputDokumen:

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

Ini akan mengirimkan AS-IS ke browser.

Anda ingin menambahkan beberapa headerDokumen pertama, seperti itu umum dengan unduhan file, sehingga peramban mengetahui jenis file itu dan bagaimana seharusnya namanya (nama file):

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

Pertama lakukan header, lalu simpan. Untuk header excel lihat juga pertanyaan berikut: Mengatur tipe mime untuk dokumen excel.


157
2017-12-19 19:15



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

21
2017-12-19 19:17



Gunakan panggilan ini

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

Untuk menampilkan lembar XLS ke halaman tempat Anda berada, pastikan saja bahwa halaman yang Anda buka tidak memiliki keluaran echo, print, yang lain.


5
2017-12-19 19:18



UNTUK PENGGUNAAN XLSX

SET IN $ xlsName nama dari XLSX dengan ekstensi. Contoh: $ 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');

UNTUK PENGGUNAAN XLS

SET IN $ xlsName nama dari XLS dengan ekstensi. Contoh: $ 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
2017-12-10 15:06



mungkin Anda sudah memecahkan masalah Anda, dengan cara apa pun saya harap ini membantu Anda.

semua file yang diunduh dimulai dengan baris kosong, dalam kasus saya di mana empat kosong garis, dan itu membuat masalah. Tidak masalah jika Anda bekerja dengannya readfile(); atau save('php://output');, Ini bisa diperbaiki dengan menambahkan ob_start(); pada mulai dari naskah dan od_end_clean(); tepat sebelum readfile(); atau save('php://output');.


4
2017-09-20 18:11



 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
2018-06-18 18:04