• thinkphp 3.2与phpexcel


    thinkphp版本:3.2

    1.在http://phpexcel.codeplex.com/下载最新PHPExcel

    2.把Classes目录下的文件(PHPExcel.php和PHPExcel文件夹)放到ThinkPHPLibraryOrgUtil目录下;并且把PHPExcel.phpg改名为PHPExcel.class.php

    3.导出数据

    第一种方案【单一完整版】:

    public function ff(){
            //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
            import("Org.Util.PHPExcel");
            
            
            //创建PHPExcel对象,注意,不能少了
            $objPHPExcel = new PHPExcel();
            $objProps = $objPHPExcel->getProperties();
            
            
            
            //设置表头
            $key = ord("A");
            foreach($headArr as $v){
                $colum = chr($key);
                $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
                $key += 1;
            }
            
            $column = 2;
            $objActSheet = $objPHPExcel->getActiveSheet();
            
            $date = date("Y_m_d",time());
            $fileName .= "_{$date}.xls";
            
            $data=array(
                array('username'=>'wangwu','password'=>"http://www.thinkphp.cn/Public/new/img/header_logo.png"),
                );
                
            foreach($data as $key => $rows){ //行写入
                $span = ord("A");
                foreach($rows as $keyName=>$value){// 列写入
                    $j = chr($span);
                    $objActSheet->setCellValue($j.$column, $value);
                    $span++;
                }
                $column++;
        }
    
            $fileName = iconv("utf-8", "gb2312", $fileName);
            //重命名表
            // $objPHPExcel->getActiveSheet()->setTitle('test');
            //设置活动单指数到第一个表,所以Excel打开这是第一个表
            $objPHPExcel->setActiveSheetIndex(0);
            header('Content-Type: application/vnd.ms-excel');
            header("Content-Disposition: attachment;filename="$fileName"");
            header('Cache-Control: max-age=0');
    
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
            $objWriter->save('php://output'); //文件通过浏览器下载
            
            
        }

    第二种方案【分开完整版】:

    public function out(){
            $data=array(
                array('username'=>'zhangsan','password'=>"123456"),
                array('username'=>'lisi','password'=>"abcdefg"),
                array('username'=>'wangwu','password'=>"111111"),
                );
            //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
            import("Org.Util.PHPExcel");
            import("Org.Util.PHPExcel.Writer.Excel5");
            import("Org.Util.PHPExcel.IOFactory.php");
    
            $filename="test_excel";
            $headArr=array("用户名","密码");
            $this->getExcel($filename,$headArr,$data);
        }
    
        private    function getExcel($fileName,$headArr,$data){
                //对数据进行检验
                if(empty($data) || !is_array($data)){
                    die("data must be a array");
                }
                //检查文件名
                if(empty($fileName)){
                    exit;
                }
    
                $date = date("Y_m_d",time());
                $fileName .= "_{$date}.xls";
    
                //创建PHPExcel对象,注意,不能少了
                $objPHPExcel = new PHPExcel();
                $objProps = $objPHPExcel->getProperties();
                
                //设置表头
                $key = ord("A");
                foreach($headArr as $v){
                    $colum = chr($key);
                    $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
                    $key += 1;
                }
                
                $column = 2;
                $objActSheet = $objPHPExcel->getActiveSheet();
                foreach($data as $key => $rows){ //行写入
                    $span = ord("A");
                    foreach($rows as $keyName=>$value){// 列写入
                        $j = chr($span);
                        $objActSheet->setCellValue($j.$column, $value);
                        $span++;
                    }
                    $column++;
            }
    
                $fileName = iconv("utf-8", "gb2312", $fileName);
                //重命名表
                   // $objPHPExcel->getActiveSheet()->setTitle('test');
                //设置活动单指数到第一个表,所以Excel打开这是第一个表
                $objPHPExcel->setActiveSheetIndex(0);
                header('Content-Type: application/vnd.ms-excel');
                header("Content-Disposition: attachment;filename="$fileName"");
                header('Cache-Control: max-age=0');
    
                  $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
                $objWriter->save('php://output'); //文件通过浏览器下载
                exit;
            }
  • 相关阅读:
    GUI学习笔记之一“Hello world”程序
    GDI和GUI的区别
    Convert.Int32、(int)和int.Parse三者的区别
    华为机试题汇总
    算法导论 第7章 课后习题
    算法导论 第8章 线性时间排序 课后习题
    算法导论 第21章 不相交集合的数据结构
    [转载]NIM(1) 一排石头的游戏
    算法导论 第22章 图论之拓扑排序
    编程珠玑第八章 算法设计艺术
  • 原文地址:https://www.cnblogs.com/wesky/p/5620547.html
Copyright © 2020-2023  润新知