使用ThinkPHP6,查询数据库数据,并导出Excel表格文件,PhpOffice

2023-03-31 18:26577

首先,需要安装phpoffice/phpspreadsheet扩展库来处理Excel文件。


安装phpoffice/phpspreadsheet扩展库


在项目根目录下执行以下命令:

composer require phpoffice/phpspreadsheet


编写控制器方法


在需要导出Excel表格的控制器中,添加一个方法,用于查询数据库数据并导出Excel文件。

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
public function exportExcel(){    
        // 查询数据
    $data = Db::name('user')->select();    
    // 创建Excel对象
    $spreadsheet = new Spreadsheet();    
    $sheet = $spreadsheet->getActiveSheet();    
    // 设置表头
    $sheet->setCellValue('A1', 'ID');    
    $sheet->setCellValue('B1', '用户名');    
    $sheet->setCellValue('C1', '邮箱');    
    // 遍历数据,填充表格内容
    $row = 2;    
    foreach ($data as $item) {        
    $sheet->setCellValue('A' . $row, $item['id']);        
    $sheet->setCellValue('B' . $row, $item['username']);        
    $sheet->setCellValue('C' . $row, $item['email']);        
    $row++;
    }    
    // 导出Excel文件
    $filename = 'user_' . date('YmdHis') . '.xlsx';    
    header('Content-Type: application/vnd.ms-excel');    
    header('Content-Disposition: attachment;filename="' . $filename . '"');    
    header('Cache-Control: max-age=0');    
    $writer = new Xlsx($spreadsheet);    
    $writer->save('php://output');
}


上一篇: 创建txt文件并写入内容 Thinkphp6

下一篇: thinkphp6中用with一对多查询hasMany,如何排序?