ThinkPHP导出sql到Excel

本文介绍了一种使用PHP将数据导出为Excel文件的方法,包括初始化PHPExcel、设置响应头、填充单元格以及保存和输出文件的过程。适用于需要批量处理数据并将其转换为Excel格式的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据格式

//获取数据格式
$arr   = ['title' => 'A', 'content' => 'B'];
$field = ['title' => '名称', 'content' => '内容'];

//查出数据 格式例:
$data  = [
    ['title' => 'biao1', 'content' => 'neirong1'],
    ['title' => 'biao1', 'content' => 'neirong1'],
];

if ($data) {
    //$data = collection($data)->toArray(); //是否需要看配置
    array_unshift($data, $field);
    $this->exportExcel($filename, $data, $arr);
}
        

方法

    # $filename 文件名
    # $data 插入数据包括 标题名称(列名)
    # $arr [字段 => 列序列]
    public function exportExcel($filename, $data, $arr) {
        //初始化PHPExcel()
        Vendor('PHPExcel.PHPExcel.IOFactory');
        $objPHPExcel = new \PHPExcel();

        //清除缓冲区,避免乱码
        ob_end_clean();
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
        header('Cache-Control: max-age=0');

        $objPHPExcel->setActiveSheetIndex(0);
        foreach ($data as $rk => $row) {
            foreach ($row as $ik => $item) {
                $objPHPExcel->getActiveSheet()->setCellValue($arr[$ik] . ($rk + 1), $row[$ik]);
            }
        }

        //设置保存版本格式
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save('php://output');
        exit;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值