zoukankan      html  css  js  c++  java
  • phpExcel实现excel文件导出

    1. 下载PHPExcel的SDK,下载地址为:https://github.com/PHPOffice/PHPExcel,将下载的文件解压后,在自己项目common目录下新建phpexcel目录,将Classes目录下的文件拷贝到phpexcel下。

    2. 导出excel文件,代码如下

       // 引入PHPExcel文件
            include_once ROOT_PATH.'/app/common/phpexcel/PHPExcel.php';
            //实例化并配置PHPExcel
            $objPHPExcel = new PHPExcel();
            $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                ->setLastModifiedBy("Maarten Balliauw")
                ->setTitle("Office 2007 XLSX Test Document")
                ->setSubject("Office 2007 XLSX Test Document")
                ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
                ->setKeywords("office 2007 openxml php")
                ->setCategory("Test result file");
    
            //为表格添加表头
            $objPHPExcel->setActiveSheetIndex(0)
    
                //Excel的第A列,uid是你查出数组的键值,下面以此类推
                ->setCellValue('A1',"活动ID")
                ->setCellValue('B1',"客户名称")
                ->setCellValue('C1',"交易号")
                ->setCellValue('D1',"金额")
                ->setCellValue('E1',"支付时间")
                ->setCellValue('F1',"活动名称")
                ->setCellValue('G1',"活动时间");
    
            /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
            foreach($data as $k => $v)
            {
                $num=$k+2;
                $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A'.$num, $v->liveId)
                    ->setCellValue('B'.$num, $v->nickName)
                    ->setCellValue('C'.$num, "	" . $v->out_trade_no . "	")
                    ->setCellValue('D'.$num, round($v->payedmoney/100,2))
                    ->setCellValue('E'.$num, $v->payedTime)
                    ->setCellValue('F'.$num, $v->locationTime);
            }
            
            // 为表格设置表格名称
            $objPHPExcel->getActiveSheet()->setTitle('User');
    
            // 设置表格大小自适应
            $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
            $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
            $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
            $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
            $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setAutoSize(true);
            $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setAutoSize(true);
    
            $objPHPExcel->setActiveSheetIndex(0);
            
            //通过浏览器下载表格
            header('Content-Type: application/vnd.ms-excel');
            header('Content-Disposition: attachment;filename="'.$name.'.xls"');
            header('Cache-Control: max-age=0');
            header('Cache-Control: max-age=1');
    
            // If you're serving to IE over SSL, then the following may be needed
            header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
            header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
            header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
            header ('Pragma: public'); // HTTP/1.0
    
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
            $objWriter->save('php://output');
            exit;
    有罪是符合人性的,但长期坚持不改就是魔鬼。
  • 相关阅读:
    Netty回调与Channel执行流程分析
    Netty执行流程分析与重要组件介绍
    HBase 介绍
    Java文件上传下载原理
    ngxtop安装和使用
    开启Nginx监控 with-http_stub_status_module
    Spring 事务模板方法设计模式
    Spring 事务管理
    JdkDynamicAopProxy 拦截器链的获得与递归执行
    CgLib实现AOP
  • 原文地址:https://www.cnblogs.com/yu-yuan/p/9854933.html
Copyright © 2011-2022 走看看