zoukankan      html  css  js  c++  java
  • php导出excel

    public function excelExporNameList(){
            // https://www.cnblogs.com/windyet/articles/9711044.html
            // /manage/BlgTb/test/number/2123/record_id/[1]/app_id/2123/user_id/201210/group_id/372/dept_id/905238/rid//export_type/word/params/{"page":1,"nums":10,"order_field":"id","order_type":"DESC"}/exportType/word/batchType/2
            $user_id = input('user_id', 0);
            $group_id = input('group_id', 0);
            $dept_id = input('dept_id', 0);
            $record_id = json_decode(input('record_id'), true);
            $params = json_decode(input('params'), true);
            $batchType = input('batchType', 1);
            //获取app
            $app_id = input('app_id', 0);
            if ($app_id==0) {
                var_dump('请传入app_id');
                exit();
            }
            $app=db('comm_app')->where('id',$app_id)->find();
            if (empty($app)) {
                var_dump('微应用appid不存在');
                exit();
            }
            //获取data
            $where=[
                'dept_id'=>$dept_id
            ];
            if ($batchType==1) {
                $where['id']=['in',$record_id];
            }
            $data=db($app['table_en'])->where($where)->order($params['order_field'].' '.$params['order_type'])->select();
            //// 创建文档
            $table_name='推荐参加中级专业技术职务任职资格评审人员名单';
            $newExcel = new Spreadsheet();  //创建一个新的excel文档
            $objSheet = $newExcel->getActiveSheet();  //获取当前操作sheet的对象
            //设置当前sheet的标题
            $objSheet->setTitle($table_name);
            //默认列宽行高
            $objSheet->getDefaultColumnDimension()->setWidth(10.4);
            $objSheet->getDefaultRowDimension()->setRowHeight(15.6);
            //设置第一列宽
            $objSheet->getColumnDimension('A')->setWidth(4.1);
            ////设置总标题
            $objSheet->getRowDimension('1')->setRowHeight(20.4);
            $objSheet->setCellValue('A1',$table_name);
            //合并单元格
            $objSheet->mergeCells('A1:O1');
            //设置总标题样式
            $styleArray = [
                'alignment' => [
                    'horizontal' => PhpOfficePhpSpreadsheetStyleAlignment::HORIZONTAL_CENTER,
                    'vertical' => PhpOfficePhpSpreadsheetStyleAlignment::VERTICAL_CENTER,
                    'wrapText' => true,
                ],
                'font' => [
                    'name' => '宋体',
                    'bold' => true,
                    'size'=>16
                ],
            ];
            $objSheet->getStyle('A1:O1')->applyFromArray($styleArray);
            ////设置第二行
            $objSheet->mergeCells('A2:B2');
            $objSheet->setCellValue('A2','单位:');
            ////设置列标题
            $column='4';
            $objSheet->getRowDimension($column)->setRowHeight(30);
            $objSheet->setCellValue('A'.$column, '排序')
                ->setCellValue('B'.$column, '工号')
                ->setCellValue('C'.$column, '姓名')
                ->setCellValue('D'.$column, '申报专业技术职务')
                ->setCellValue('E'.$column, '出生年月')
                ->setCellValue('F'.$column, '参加工作年月')
                ->setCellValue('G'.$column, '最高学历')
                ->setCellValue('H'.$column, '毕业时间')
                ->setCellValue('I'.$column, '学制')
                ->setCellValue('J'.$column, '最高学位')
                ->setCellValue('K'.$column, '现专业技术职务')
                ->setCellValue('L'.$column, '评聘时间')
                ->setCellValue('M'.$column, '申报系列')
                ->setCellValue('N'.$column, '外语水平')
                ->setCellValue('O'.$column, '计算机应用能力');
            $styleArray = [
                'alignment' => [
                    'horizontal' => PhpOfficePhpSpreadsheetStyleAlignment::HORIZONTAL_CENTER,
                    'vertical' => PhpOfficePhpSpreadsheetStyleAlignment::VERTICAL_CENTER,
                    'wrapText' => true,
                ],
                'font' => [
                    'name' => '宋体',
                    'bold' => false,
                    'size'=>10
                ],
                'borders' => [
                    'allBorders' => [
                        'borderStyle' => PhpOfficePhpSpreadsheetStyleBorder::BORDER_THIN,
                        'color' => [
                        ]
                    ],
                ],
            ];
            $objSheet->getStyle('A'.$column.':O'.$column)->applyFromArray($styleArray);
            //填充数据
            foreach ($data as $k => $v) {
                $column=5+$k;
                $objSheet->getRowDimension($column)->setRowHeight(30);
                $objSheet->setCellValue('A'.$column, $v['id'])
                    ->setCellValue('B'.$column, '工号')
                    ->setCellValue('C'.$column, $v['xm'])
                    ->setCellValue('D'.$column, $v['sbzyjszw'])
                    ->setCellValue('E'.$column, $v['csny'])
                    ->setCellValue('F'.$column, '参加工作年月')
                    ->setCellValue('G'.$column, $v['zgxl'])
                    ->setCellValue('H'.$column, $v['byrq'])
                    ->setCellValue('I'.$column, $v['xz'])
                    ->setCellValue('J'.$column, $v['zgxw'])
                    ->setCellValue('K'.$column, $v['xzyjszw'])
                    ->setCellValue('L'.$column, $v['ppsj'])
                    ->setCellValue('M'.$column, $v['sbzyjszwxl'])
                    ->setCellValue('N'.$column, $v['wysp'])
                    ->setCellValue('O'.$column, $v['jsjyynl']);
                $styleArray = [
                    'alignment' => [
                        'horizontal' => PhpOfficePhpSpreadsheetStyleAlignment::HORIZONTAL_CENTER,
                        'vertical' => PhpOfficePhpSpreadsheetStyleAlignment::VERTICAL_CENTER,
                        'wrapText' => true,
                    ],
                    'font' => [
                        'name' => '宋体',
                        'bold' => false,
                        'size'=>10
                    ],
                    'borders' => [
                        'allBorders' => [
                            'borderStyle' => PhpOfficePhpSpreadsheetStyleBorder::BORDER_THIN,
                            'color' => [
                            ]
                        ],
                    ],
                ];
                $objSheet->getStyle('A'.$column.':O'.$column)->applyFromArray($styleArray);
            }
            ////说明1
            $column+=2;
            $objSheet->mergeCells('A'.$column.':L'.$column);
            $objSheet->setCellValue('A'.$column,'说明:1 此表是各院、部处级单位正式推荐名单,表内各项,应核实无误。');
            ////说明2
            $column+=1;
            $objSheet->mergeCells('A'.$column.':L'.$column);
            $objSheet->setCellValue('A'.$column,'             2 申报系列,注明教师、科研、工程、实验、教育管理、图书资料、档案、出版、卫生、会计和普教教师。');
            ////盖章行
            $column+=2;
            $objSheet->mergeCells('A'.$column.':B'.$column);
            $objSheet->setCellValue('A'.$column,'单位(公章):');
            $objSheet->mergeCells('G'.$column.':H'.$column);
            $objSheet->setCellValue('G'.$column,'单位负责人(签字)');
            $objSheet->setCellValue('K'.$column,'登记人');
            $objSheet->setCellValue('N'.$column,'日期:');
            $this->downloadExcel($newExcel,$table_name, 'Xls');
        }
    
  • 相关阅读:
    SpringBoot 之Spring Boot Starter依赖包及作用
    WebApi过滤器使用和请求实体合法性验证
    sql server 事务隔离性 snapshot 、read committed说明
    jQuery的deferred对象详解
    Juqery插件编写 基础说明
    sqlServer MERGE 对数据进行修改或插入自动视别 特别用于批量数据的插入或修改
    .net EntityFramework dbContext 如何实例化
    NOPI Excel 数据导入到数据库
    知识点整理01- 引用对象被子方法赋值后不改变;CheckBox 取消选择不可用问题
    .net Windows Service 按装及遇到的问题
  • 原文地址:https://www.cnblogs.com/bufeetu/p/14469002.html
Copyright © 2011-2022 走看看