php生成Excel


簡單粗暴直接上代碼

    /**
     * @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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM