PHPExcel 导出excel(xls)

PHPExcel 导出excel(xls)

下次用就可以直接粘代码了😏😏😏
上一次用是在tp5.0

/**
     * PHPExcel 导出
     *
     * @param array $field 表格第一行的表格 格式:['name'=>'名字','数据库字段名1'=>'显示的名称1',...]
     * @param array $list 数据 格式: 二维数组,第一层键为数字,第二层键为字段名
     * @param string $title 导出的文件名称
     */
    public function phpExcelList($field, $list, $title = '文件')
    {
        // 将标题转码
        iconv('utf-8', 'gbk', $title);
        // 引入   等价于 PHPExcel/PHPExcel
        vendor("PHPExcel.PHPExcel");
        $objPHPExcel = new \PHPExcel();
        $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel); //设置保存版本格式
        $objPHPExcel->setActiveSheetIndex(0);
        // 列标 有几列就设几个
        $columns = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M'];
        // 每列的宽度 长度对应列标
        $width = [30, 10, 12, 12, 20, 15, 15, 20, 13, 16, 30, 13, 15];
        // 设置列宽
        foreach ($columns as $k => $v) {
            $objPHPExcel->getActiveSheet()->getColumnDimension($v)->setWidth($width[$k]);
        }
        // 设置表格第一行显示内容
        $i = 0;
        foreach ($field as $k => $v) {
            $objPHPExcel->getActiveSheet()->setCellValue($columns[$i] . '1', $v);
            $i++;
        }
        // 填充数据
        /**
         * 可以写成以下格式
         * $objPHPExcel->getActiveSheet()->setCellValue('A2',$v['name])
         *                               ->setCellValue(单元格,要写入的数据);
         * 表头同理
         */
        $column_keys = array_keys($field);
        foreach ($list as $k => $v) {
            $j = 0;
            foreach ($v as $key => $val) {
            	// 加 \t 是为了防止长数字显示科学记数法
                $objPHPExcel->getActiveSheet()->setCellValue($columns[$j] . ($k + 2), "\t".$v[$column_keys[$j]]."\t");
                $j++;
                // 避免出现下标不存在
                if ($j == count($column_keys)) {
                    break;
                }
            }
        }
        // 防乱码
        ob_end_clean();
        header('Content-Type: application/vnd.ms-excel;charset=utf-8'); //文件类型,字符编码
        header('Content-Disposition: attachment;filename="' . $title . '.xls"'); //文件名
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  //excel 2003
        // 浏览器输出
        $objWriter->save('php://output');
        exit;
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Slowlyo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值