zoukankan      html  css  js  c++  java
  • thinkphp中phpexcel的使用

    1.下载phpexcel文件(之前提到过!

    2.下载后将文件放到:

    3.在控制器中引用:

    4.部分实现的代码:

     public function OutputExcel($data)  //导入订单
        {
    
            vendor("PHPExcel.PHPExcel");
    
            // Create new PHPExcel object  
            $objPHPExcel = new PHPExcel();
            // Set properties  
            $objPHPExcel->getProperties()->setCreator("ctos")
                ->setLastModifiedBy("ctos")
                ->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");
    
            //set width  
            $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
            $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
            $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(25);
            $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(13);  
            $objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(13);  
            $objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(13);  
            $objPHPExcel->getActiveSheet()->getColumnDimension('Q')->setWidth(13);  
            $objPHPExcel->getActiveSheet()->getColumnDimension('R')->setWidth(13);   
            $objPHPExcel->getActiveSheet()->getColumnDimension('S')->setWidth(13);  
            $objPHPExcel->getActiveSheet()->getColumnDimension('T')->setWidth(13);  
            $objPHPExcel->getActiveSheet()->getColumnDimension('U')->setWidth(13);  
            $objPHPExcel->getActiveSheet()->getColumnDimension('V')->setWidth(13);  
            $objPHPExcel->getActiveSheet()->getColumnDimension('W')->setWidth(13);
            $objPHPExcel->getActiveSheet()->getColumnDimension('X')->setWidth(13); 
            $objPHPExcel->getActiveSheet()->getColumnDimension('Y')->setWidth(13); 
            $objPHPExcel->getActiveSheet()->getColumnDimension('Z')->setWidth(13);         
    
    
            //设置行高度  
    
            // $objPHPExcel->getActiveSheet()->getRowDimension()->setRowHeight(25);
            $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(25);
            $objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(45.75);
    
             //$objPHPExcel->getActiveSheet()->mergeCells('A1:M1');
            //set font size bold  
            //$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(11); 
            $objPHPExcel->getActiveSheet()->getStyle('A1:Z1')->getFont()->setSize(11);
           //$objPHPExcel->getActiveSheet()->getStyle('A2:M2')->getFont()->setSize(12);
            $objPHPExcel->getActiveSheet()->getStyle('A1:Z1')->getFont()->setName('等线');
            $objPHPExcel->getActiveSheet()->getStyle('A1:Z1')->getFont()->setBold(true);
            //$objPHPExcel->getActiveSheet()->getStyle('A1:Z1')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
            /*$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('宋体');
            $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('宋体');
            $objPHPExcel->getActiveSheet()->getStyle('A2:M2')->getFont()->getColor()->setARGB('FFffffff');
            $objPHPExcel->getActiveSheet()->getStyle('A2:M2')->getFont()->setBold(true);
            $objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('A2:M2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('A2:M2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
    
            //$objAlignA5 = $objStyleA5->getAlignment();  
    
            $objPHPExcel->getActiveSheet()->getStyle('A1:M1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    
            //$objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
            //设置水平居中  
    
            $objPHPExcel->getActiveSheet()->getDefaultStyle('')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle('A2:M2')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
            $objPHPExcel->getActiveSheet()->getStyle('A2:M2')->getFill()->getStartColor()->setARGB("165,48,15"); */
            //$objPHPExcel->getActiveSheet()->getStyle('A1:H5')->getFill()->getStartColor()->setARGB('00ff99cc'); // 将背景设置为浅粉色
            // set table header content  
            $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1', '收到订单 ')
                ->setCellValue('B1', '签单日期')
                ->setCellValue('C1', '签单公司')
                ->setCellValue('D1', '签单人员')
                ->setCellValue('E1', '渠道经理')
                ->setCellValue('F1', '业务行政所属')
                ->setCellValue('G1', '业务行政')
                ->setCellValue('H1', '持牌人')
                ->setCellValue('I1', '销售公司')
                ->setCellValue('J1', '销售顾问')
                ->setCellValue('K1', '保险公司')
                ->setCellValue('L1', '产品名称')  
                ->setCellValue('M1', '年期')  
                ->setCellValue('N1', '缴费方式')
                ->setCellValue('O1', '币种')
                ->setCellValue('P1', '保费')
                ->setCellValue('Q1', '保额')  
                ->setCellValue('R1', '投保人(中文)')  
                ->setCellValue('S1', '投保人(拼音)')  
                ->setCellValue('T1', '受保人(中文)')  
                ->setCellValue('U1', '受保人(拼音)')  
                ->setCellValue('V1', '保单号码')  
                ->setCellValue('W1', '生效日期')    
                ->setCellValue('X1', '首期保费日')
                ->setCellValue('Y1', '预计冷静期截止日')
                ->setCellValue('Z1', '保单状态')
            ;
            // Miscellaneous glyphs, UTF-8 
            for ($i = 0; $i < count($data); $i++) {
                switch($data[$i]['status']){
                case 0:
                $s = "批核中";
                break;
                case 1:
                $s = "保单生效";
                break;
                case 2:
                $s = "拒保/退保";
                break;
                case 3:
                $s = "Pending-处理中";
                break;
                case 4:
                $s = "Pending-需补资料";
                break;
                default:
                $s = "Pending-资料需审核";
                }
    
                $splwhere['id'] = array('eq',$data[$i]['sales_id']);
                $sale = ModelSalesModel::get($splwhere);
                $where['id'] = array('eq',$sale['admin_id']);
                $admin = ModelAdminModel::get($where);
                $where1['admin_id'] = array('eq',$admin['id']);
                $company = ModelCompanyModel::get($where1);
                $customer = M('Customer')->where(array('id'=>$data[$i]['customer_id']))->find();
                
                $objPHPExcel->getActiveSheet(0)->setCellValue('A' . ($i + 2), $data[$i]['deliver_date']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('B' . ($i + 2), date('Y-m-d',strtotime($data[$i]['sold_date'])));
                $objPHPExcel->getActiveSheet(0)->setCellValue('C' . ($i + 2), $data[$i]['suoshu']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('D' . ($i + 2), $data[$i]['receiver']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('E' . ($i + 2), $data[$i]['sale_jingli']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('F' . ($i + 2), $company['name']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('G' . ($i + 2), $admin['username']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('H' . ($i + 2), $data[$i]['chipai']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('I' . ($i + 2), $data[$i]['sales']['company']['name']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('J' . ($i + 2), $data[$i]['sales']['name']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('K' . ($i + 2), $data[$i]['subproduct']['product']['insurance_company']['name']);  
                $objPHPExcel->getActiveSheet(0)->setCellValue('L' . ($i + 2), $data[$i]['subproduct']['product']['name']);  
                $objPHPExcel->getActiveSheet(0)->setCellValue('M' . ($i + 2), $data[$i]['subproduct']['name']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('N' . ($i + 2), $data[$i]['payment_method']);
                $objPHPExcel->getActiveSheet(0)->setCellValue('O' . ($i + 2), '美元');
                $objPHPExcel->getActiveSheet(0)->setCellValue('P'.($i+2), $data[$i]['premium_usd']);  
                $objPHPExcel->getActiveSheet(0)->setCellValue('Q'.($i+2), $data[$i]['limit_usd']);  
                $objPHPExcel->getActiveSheet(0)->setCellValue('R'.($i+2), $data[$i]['customer_name']?$data[$i]['customer_name']:$customer['name']);  
                $objPHPExcel->getActiveSheet(0)->setCellValue('S'.($i+2), $data[$i]['customer_name_en']);  
                $objPHPExcel->getActiveSheet(0)->setCellValue('T'.($i+2), $data[$i]['policy_name_cn']); 
                $objPHPExcel->getActiveSheet(0)->setCellValue('U'.($i+2), $data[$i]['policy_name_en']);  
                $objPHPExcel->getActiveSheet(0)->setCellValue('V'.($i+2), $data[$i]['contract_code']);  
                $objPHPExcel->getActiveSheet(0)->setCellValue('W'.($i+2), $data[$i]['shengxiao']);    
                $objPHPExcel->getActiveSheet(0)->setCellValue('X'.($i+2), $data[$i]['begin_date']);    
                $objPHPExcel->getActiveSheet(0)->setCellValue('Y'.($i+2), $data[$i]['lengjing']);    
                $objPHPExcel->getActiveSheet(0)->setCellValue('Z'.($i+2), $s);            
                
                //$objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 2) . ':M' . ($i + 3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
                //$objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 2) . ':M' . ($i + 3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
                $objPHPExcel->getActiveSheet()->getRowDimension($i + 2)->setRowHeight(20);
            }
    
    
            //  sheet命名  
            $objPHPExcel->getActiveSheet()->setTitle('销售记录表');
    
    
            // Set active sheet index to the first sheet, so Excel opens this as the first sheet  
            $objPHPExcel->setActiveSheetIndex(0);
    
    
            // excel头参数  
            header('Content-Type: application/vnd.ms-excel');
            header('Content-Disposition: attachment;filename="销售记录表(' . date('Ymd-His') . ').xls"');  //日期为文件名后缀  
            header('Cache-Control: max-age=0');
    
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  //excel5为xls格式,excel2007为xlsx格式  
    
    
            $objWriter->save('php://output');
        }

    5.测试。应用。

  • 相关阅读:
    网络技术:网络互联模型
    二柱子代码版(应该不会在动它了)
    验证码-java界面版
    动手动脑1002
    动手动脑1001
    动手动脑0930
    动手动脑0929
    Java Web学习-0823
    Java Web学习-0822
    Java Web学习-0821
  • 原文地址:https://www.cnblogs.com/wuheng1991/p/6374320.html
Copyright © 2011-2022 走看看