【分享案例】ThinkPHP6.0 导出 Excel
更新时间:2024-01-23ThinkPHP6.0 导出 Excel
在Web开发中,经常需要将数据导出为Excel文件,方便用户进行查看和分析。在ThinkPHP6.0中,我们可以利用PHPExcel库来实现这个功能。
需求分析
首先,我们需要明确导出Excel的数据来源。可以是数据库中的数据、API返回的数据或者其他数据源。其次,我们需要确定导出Excel的字段和格式。这包括表头和每一列的数据格式。
我们以一个简单的例子来说明:假设我们需要导出用户的姓名、年龄和性别信息。我们的数据源是数据库中的用户表,包含id、name、age和gender字段。
代码设计与实现
1. 安装PHPExcel库
composer require phpoffice/phpexcel
2. 创建导出类
namespace app\util; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; class ExcelExporter { public static function export($data) { $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // 设置表头 $sheet->setCellValue('A1', '姓名'); $sheet->setCellValue('B1', '年龄'); $sheet->setCellValue('C1', '性别'); // 填充数据 $row = 2; foreach ($data as $item) { $sheet->setCellValue('A'.$row, $item['name']); $sheet->setCellValue('B'.$row, $item['age']); $sheet->setCellValue('C'.$row, $item['gender']); $row++; } // 保存Excel文件 $writer = new Xlsx($spreadsheet); $writer->save('file.xlsx'); } }
3. 在控制器中调用导出方法
namespace app\controller; use app\util\ExcelExporter; use think\Controller; class UserController extends Controller { public function exportExcel() { // 获取需要导出的数据 $data = User::select()->toArray(); // 调用导出方法 ExcelExporter::export($data); return '导出成功!'; } }
代码解释
首先,我们引入了PHPExcel库,并创建了一个ExcelExporter类。在export方法中,我们创建了一个Spreadsheet实例,表示一个Excel文件。然后,我们获取当前活动的工作表,并设置了表头。接下来,我们遍历数据数组,填充每一行的数据。最后,我们实例化Xlsx Writer,并保存Excel文件。
在UserController的exportExcel方法中,我们获取需要导出的数据,并调用ExcelExporter的export方法进行导出。最后,我们返回一个导出成功的提示信息。
总结
通过以上代码实现,我们可以在ThinkPHP6.0中轻松导出Excel文件。根据实际需求,我们可以进一步扩展和优化这个功能。例如,添加数据筛选、设置单元格样式等。希望这个案例对你有所帮助!