zoukankan      html  css  js  c++  java
  • PHP导出Excel表格实例

    /**
         * 处理表单导出成表格
         */
        public function excel_handle($a = 2)
        {
            require_once 'vendor/PHPExcel/PHPExcel.php';
            $PHPExcel = new PHPExcel(); //实例化PHPExcel类,类似于在桌面上新建一个Excel表格
            $PHPSheet = $PHPExcel->getActiveSheet(); //获得当前活动sheet的操作对象
            $PHPSheet->setTitle('处理表'); //给当前活动sheet设置名称
            //表头
            //给当前活动sheet填充数据,数据填充是按顺序一行一行填充的,假如想给A1留空,可以直接setCellValue(‘A1’,’’);
            $PHPSheet->setCellValue('A1', 'ID')
                ->setCellValue('B1', '姓名')
                ->setCellValue('C1', '手机号')
                ->setCellValue('D1', '业务需求')
                ->setCellValue('E1', '处理人姓名')
                ->setCellValue('F1', '创建时间')
                ->setCellValue('G1', '是否处理')
            ;
            $order = D('Site/Handle')
                ->alias('h')
                ->join('LEFT JOIN ly_site_category AS c ON FIND_IN_SET(c.id,h.cid)')
                ->join('LEFT JOIN ly_admin_user AS u ON u.id = h.uid')
                ->group('h.id')
                ->field('h.id,h.username,h.mobile,group_concat(distinct c.title SEPARATOR " | ") as c_title,u.username as uusername, h.create_time as create_time,is_handle')
                ->select();
            $list = array(
                '0'  => '待处理',
                '1'  => '已处理',
            );
            foreach ($order as $k1 => $v1) {
                $cell = $k1 + 2;
                if ($v1['is_handle']){
                    $v1['is_handle'] = '已处理';
                } else {
                    $v1['is_handle'] = '待处理';
                }
                $PHPSheet->setCellValue('A' . $cell, $v1['id'])
                    ->setCellValue('B' . $cell, $v1['username'])
                    ->setCellValue('C' . $cell, $v1['mobile'])
                    ->setCellValue('D' . $cell, $v1['c_title'])
                    ->setCellValue('E' . $cell, $v1['uusername'])
                    ->setCellValue('F' . $cell, date('Y-m-d H:i:s', $v1['create_time']))
                    ->setCellValue('G' . $cell, $v1['is_handle'])
                ;
            }
    
            switch ($a) {
                case '1':
                    $PHPWriter = PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007'); //按照指定格式生成Excel文件,‘Excel2007’表示生成2007版本的xlsx,
                    $PHPWriter->save('handle.xlsx'); //表示在$path路径下面生成demo.xlsx文件
                    break;
                case '2':
                    // 生成2007excel格式的xlsx文件
    
                    $PHPWriter = PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel5'); //按照指定格式生成Excel文件,‘Excel2007’表示生成2007版本的xlsx
                    header('Content-Type: text/html;charset=utf-8');
                    header('Content-Type: xlsx');
                    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
                    header('Content-Disposition: attachment;filename="handle.xls"');
                    header('Cache-Control: max-age=0');
                    $PHPWriter->save("php://output");
                    break;
            }
        }

    推荐使用 $a = 2 的导出方式

    工作只为生活,学习才是主流!
  • 相关阅读:
    织梦开发——相关阅读likeart应用
    织梦标签教程
    织梦专题调用代码
    HIT 2543 Stone IV
    POJ 3680 Intervals
    HIT 2739 The Chinese Postman Problem
    POJ 1273 Drainage Ditches
    POJ 2455 Secret Milking Machine
    SPOJ 371 Boxes
    HIT 2715 Matrix3
  • 原文地址:https://www.cnblogs.com/marco123/p/10244546.html
Copyright © 2011-2022 走看看