首页 > Web开发 > 详细

php生成Excel

时间:2019-10-15 15:37:44      阅读:88      评论:0      收藏:0      [点我收藏+]

简单粗暴直接上代码

    /**
     * @param $res  //二维数组(要保存的数据,$res[0]为excel表头)
     * @param null $FileName  //文件名
     * @param null $width     //每一列的宽度,键名与数据键名相同
     * @param string $rgb     //第一行背景颜色(16进制)
     * @return mixed
     * @throws \PHPExcel_Exception
     * @throws \PHPExcel_Writer_Exception
     */
    function Excel_Create($res,$FileName =null, $width=null,$rgb=null)
    {
        require_once ‘Classes/PHPExcel.php‘;
//
        ob_end_clean();

        // 实例化excel类
        $objPHPExcel = new \PHPExcel();
        // 操作第一个工作表
        $objPHPExcel->setActiveSheetIndex(0);
        // 设置sheet名
        $objPHPExcel->getActiveSheet()->setTitle(‘Sheet1‘);

        // 列名表头文字加粗
        $objPHPExcel->getActiveSheet()->getStyle(‘A1:Z1‘)->getFont()->setBold(true);
        // 列表头文字居中
        $objPHPExcel->getActiveSheet()->getStyle(‘A1:Z1‘)->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        //获取表头
        $keys = array_keys($res[0]);

        // 列名赋值
        $col = ‘A‘;
        foreach ($keys as $key) {
            // 列名赋值
            $objPHPExcel->getActiveSheet()->setCellValue($col . ‘1‘, $res[0][$key]);

            if($rgb!=null){
                // 设置第一行颜色
                $objPHPExcel->getActiveSheet()->getStyle($col . ‘1‘)->getFill()->applyFromArray(array(
                    ‘type‘ => \PHPExcel_Style_Fill::FILL_SOLID,
                    ‘startcolor‘ => array(
                        ‘rgb‘ => $rgb
                    )
                ));
            }

            //设置表格宽度
            if($width!=null){
                $objPHPExcel->getActiveSheet()->getColumnDimension($col)->setWidth($width[$key]);
            }else{
                $objPHPExcel->getActiveSheet()->getColumnDimension($col)->setWidth(20);
            }

            $col = chr(ord($col) + 1);
        }
        unset($res[0]);

        // 数据起始行
        $row_num = 2;
        // 向每行单元格插入数据
        foreach ($res as $value) {
            // 设置所有垂直居中
            $objPHPExcel->getActiveSheet()->getStyle(‘A‘ . $row_num . ‘:‘ . ‘Z‘ . $row_num)->getAlignment()
                ->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
            // 设置价格为数字格式
//            $objPHPExcel->getActiveSheet()->getStyle(‘D‘ . $row_num)->getNumberFormat()
//                ->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);
            // 居中
            $objPHPExcel->getActiveSheet()->getStyle(‘A‘ . $row_num . ‘:‘ . ‘Z‘ . $row_num)->getAlignment()
                ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

            // 设置单元格值
            $col = ‘A‘;
            foreach ($keys as $key) {
                // 单元格赋值
                $objPHPExcel->getActiveSheet()->setCellValue($col . $row_num, $value[$key]);
                $col = chr(ord($col) + 1);
            }

            $row_num++;
        }

        if($FileName==null){
            $FileName=time();
        }

        $outputFileName = $FileName . ‘.xls‘;
        $xlsWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header(‘Content-Disposition:inline;filename="‘ . $outputFileName . ‘"‘);
//        header(" Content-type:application / vnd.ms-excel; charset = UTF-8");
//        header(‘Content-Disposition:attachment; filename =“‘.iconv("gb2312",‘utf-8‘,$outputFileName).‘.xlsx”‘);
        header("Content-Transfer-Encoding: binary");
        header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        $xlsWriter->save("php://output");
//        echo file_get_contents($outputFileName);
        return $res;
    }

  

  引入文件(PHPExcel.php)传送门 :http://xcdn.php.cn/leiku/chuli/PHPExcel-1.8.zip?sign=32bd8b6174060344d512ff228b4bc229&timestamp=1571102641

                   :https://www.php.cn/xiazai/leiku/1491

php生成Excel

原文:https://www.cnblogs.com/beiman/p/11677947.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!