今天宇润给大家分享一下,在 imi 框架里怎么做文件下载和导出 Excel。
首先给大家演示一下 imi 文件下载:
/**
* @Action
*/
public function downloadFile()
{
$this->response->sendFile(__FILE__);
}
__FILE__
可以改成你要让用户下载的文件名
然后是导出 Excel 文件,首先我们要引入一个组件包:composer require phpoffice/phpspreadsheet
导出 Excel 并提供给用户下载:
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
/**
* @Action
*/
public function export()
{
// 生成一个空 excel
$spreadsheet = new Spreadsheet();
$writer = new Xlsx($spreadsheet);
$fileName = tempnam('/tmp', 'imi-excel-');
// 保存到临时文件
$writer->save($fileName);
// 实现下载 excel
$this->response->sendFile($fileName, null, '1.xlsx');
// 删除临时文件
unlink($fileName);
}
上面演示了使用 phpoffice/phpspreadsheet
生成一个空 Excel,保存到临时文件,提供给用户下载,删除临时文件的步骤。
phpoffice/phpspreadsheet
组件生成 Excel 的操作不是本文主要讲解内容,如有需要可以去深入了解。