thinkphp5分批次导出10万条数据到excel代码
时间: 2023-04-10 17:02:58 浏览: 196
Thinkphp5导入导出excel
可以使用PHPExcel库来实现,具体代码如下:
// 引入PHPExcel库
require_once 'PHPExcel/PHPExcel.php';
// 创建PHPExcel对象
$objPHPExcel = new PHPExcel();
// 设置表头
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '姓名')
->setCellValue('B1', '年龄')
->setCellValue('C1', '性别');
// 分批次导出数据
$limit = 100000; // 每次导出的数据量
$page = 1; // 当前页数
$start = ($page - 1) * $limit; // 起始位置
// 查询数据
$data = Db::name('user')->limit($start, $limit)->select();
// 循环写入数据
$i = 2; // 从第二行开始写入数据
foreach ($data as $item) {
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$i, $item['name'])
->setCellValue('B'.$i, $item['age'])
->setCellValue('C'.$i, $item['sex']);
$i++;
}
// 设置文件名和格式
$filename = 'user_'.date('YmdHis').'.xlsx';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
// 输出Excel文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
阅读全文