phpexcel下载

Dvi*_*evy 77 php export download export-to-excel phpexcel

你好,我是phpexcel的新手,我想知道是否有某种方式将我创建的excel发送到客户端下载而不保存在我的服务器上或者在下载后立即将其删除

我正在尝试在页面上创建一个"导出按钮",该页面将为用户提供他想要我刚刚创建的excel的"弹出窗口".

现在我创建表后,我做:

$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");
Run Code Online (Sandbox Code Playgroud)

但是它将它保存到我的服务器上

谢谢

hak*_*kre 165

而不是将其保存到文件,将其保存到php://output文档:

$objWriter->save('php://output');
Run Code Online (Sandbox Code Playgroud)

这将按原样将其发送到浏览器.

你想添加一些文件第一次,就像是用文件下载常见,因此浏览器知道哪些类型的文件,它应该如何命名(文件名):

// 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');
Run Code Online (Sandbox Code Playgroud)

先做标题,然后保存.对于excel标题,请参阅以下问题:为excel文档设置mime类型.

  • 请注意,您在该页面上输出的唯一内容是来自两个 `header` 行和 `->save()` 操作的输出。您需要在 a) 显示页面 * 或 * b) 提供下载之间做出决定。两者都不能轻松地使用一个脚本。但是,您可以为下载创建一个脚本,为页面创建一个脚本,当页面脚本被执行时,重定向到下载脚本,这将使浏览器提供另存为对话框。 (2认同)

mat*_*ino 22

$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');
Run Code Online (Sandbox Code Playgroud)


Jos*_*nge 5

使用此电话

$objWriter->save('php://output');
Run Code Online (Sandbox Code Playgroud)

要将XLS表输出到您所在的页面,只需确保您所在的页面没有其他回声,打印输出.


Rog*_*aes 5

对于XLSX使用

从XLSX中使用扩展名设置$ xlsName名称.示例:$ 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');
Run Code Online (Sandbox Code Playgroud)

对于XLS使用

从XLS中使用扩展名设置$ xlsName名称.示例:$ 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');
Run Code Online (Sandbox Code Playgroud)

  • **PSI.:XLS格式默认定义为'Excel5',XLSX为'Excel2007'.** (3认同)