zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    php 构造函数支持不同个数参数的方法
    浅谈管理系统操作日志设计(附操作日志类)
    PHP 远程文件下载的进度条实现
    PHP处理大文件下载
    c语言线性表
    c语言题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点
    c语言:从一组数据中选出可以组成三角形并且周长最长的三个数(简单)
    关于Staruml与powerdesigner启动使用中的问题
    Win7下安装Apache+PHP+MySQL
    <转>java编译问题:使用了未经检查或不安全的操作
  • 原文地址:https://www.cnblogs.com/beiman/p/11677947.html
Copyright © 2011-2022 走看看