天天看點

用PHPExcel導出的個人總結

??浣跨??HPExcel杩?绋?褰?涓????拌???涓???棰?,?葷?涓?涓?,浠ュ??ヨ??

???跺??瀵煎?轟?????涓?寮?????棰?,?葷?浜?涓?,??浠ュ?璇?杩??瘋В??

1.??arning锛??ㄧ??涓?琛???浜?杩?琛?浠g??锛?

error_reporting(0);

杩?琛?浠g????浣??ㄥ氨????warning锛?error绛?绛???淇℃??涓??劇ず?烘?ャ??

?????ц?锛?瀵煎?烘?ョ??excel??浠跺氨??浠ラ『?╂??寮?浜???

2.???跺????涓?寮?,????缂?????xlsx??xls??涓???.璇?璇???涓?杞戒??ョ????浠跺??缂???涓?lsx?逛負xls灏辮?芥??寮?,?????蜂??ヤ?涔???!!

???跺????寮???涔辯???葷?濡?涓?:

1.??浜鴻?存??Bom澶寸????棰?,涓?杩??????惰?娌℃??????浣???涔????朵腑涔?涓???褰卞????绱?.

2.phpexcel瀵煎?烘?ョ????涔辯??,????涓哄?煎?虹???跺??瀛?绗???????棰?,娌℃??璁劇疆濂?????瀵煎?烘?剁??浠g??浠ュ???翠釜??妗g??缂???!!??濂藉?煎?虹???跺????utf-8???煎?.?朵????煎?娌℃??娣卞?ョ??绌?

瀵煎?烘?ョ??Excel??绌虹?界??:

1.绌虹?界??璇? ???芥???版??娌℃???炬?g‘!!!??姝ユ???扮?????版????姝g‘??

2.????浠g?????㈡?????т???绱㈠????瑰??誨~?ユ?版??琛???浠ュ??????????扮??煎?涓?涓???涓??蜂?瀵艱?村?煎?虹??琛ㄦ??绌虹??

?瑰??????P妗??朵??㈡????瑕???涓????ㄤ嬌??HPExcel???跺??,??????瀹?渚??????㈣???\,????浼??ラ??,?句??扮被??绛?绛?.

瀵煎?虹???跺????绀?lass 'XMLWriter' not found,瑙e?蟲?規???:

$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');

?逛負

$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5')

涓??㈡??????浠g??,mark涓?涓?.

if(!empty($_POST['out']))
            {
                error_reporting(E_ALL);
                ini_set('display_errors', TRUE);
                ini_set('display_startup_errors', TRUE);
                date_default_timezone_set('Europe/London');

                if (PHP_SAPI == 'cli')
                    die('This example should only be run from a Web Browser');

                /** Include PHPExcel */
                require_once dirname(__FILE__) . '/PHPExcel.php';//涓??????版??璇峰???ヤ?????璺?寰?

                // Create new PHPExcel object
                $objPHPExcel = new PHPExcel();//??濮???涓葷被.

                // Set document properties 璁劇疆灞???                $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");

                // Miscellaneous glyphs, UTF-8
                    //灏?瑕??峰??????琛ㄦ?版??,杩?涓??版?規???ㄧ????TP妗?????浠ヨ??峰??,涓?????妗?????涓????垮?版?版?????規?,璇鋒?規????宸辨???佃??瀹?涔?
                $list = $User->where('sell=1')->field('giftpic,id,giftname,des,credit,number,sell,addtime')->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
				
                foreach($list as $a=>$b){
                   $lamp[] = array_values($b);//???寵???扮???涓?琛??㈡??绱㈠?,?逛究???㈢??璋???                }
                
                    // ?峰??????琛ㄧ??????瀛?娈?                    $fields = $User->getDbFields();
                    foreach($fields as $f=>$d){
                        $ff[][] = $d;
                    }
			//??宸卞????excel????,濡???瓒?杩?26涓?,瓒?杩?52涓?,78涓???涓???????缁?涓?????????.??浠ヨ??宸卞????.
                        $s = 'abcdefghijklmnopqrstuvwxyz'; 
                        $aa = str_split($s,1); 
                            $b=array();
                                for($i=0;$i<count($ff);$i++){
                                    if($i<26){
                                        $b[$aa[$i]]=$i;
                                    }else if($i<52){
                                        $m='A';
                                        $b[$m.$aa[$i-26]]=$i;
                                    }else if($i<78){
                                        $m='B';
                                        $b[$m.$aa[$i-52]]=$i;
                                    }
                                }
                                
				//杩?涓??版????????瀹?涔???琛ㄥご,灏辨??瀵煎?轟?????Excel??绗?涓?琛?,?規????宸遍??瑕???瀹?涔?.
                                $objPHPExcel->setActiveSheetIndex(0)->setCellValue('a1','?劇??');
                                $objPHPExcel->setActiveSheetIndex(0)->setCellValue('b1','ID');
                                $objPHPExcel->setActiveSheetIndex(0)->setCellValue('c1','??绉?);
                                $objPHPExcel->setActiveSheetIndex(0)->setCellValue('d1','浣?棰?');
                                $objPHPExcel->setActiveSheetIndex(0)->setCellValue('e1','绉???');
                                $objPHPExcel->setActiveSheetIndex(0)->setCellValue('f1','搴?瀛???);
                                $objPHPExcel->setActiveSheetIndex(0)->setCellValue('g1','???㈡??);
                                $objPHPExcel->setActiveSheetIndex(0)->setCellValue('h1','娣誨???堕??);
                            foreach($lamp as $i=>$v)
                            {
                                    foreach($b as $kk => $vv)
                                    {
                                        mb_convert_encoding($v[$vv], "UTF-8");
                                        $objPHPExcel->setActiveSheetIndex(0)
                                            ->setCellValue($kk.($i+2),$v[$vv]);//???版?????ヨ???xcel
                                    }
                            }

                // Rename worksheet
                $objPHPExcel->getActiveSheet()->setTitle('vip');//??瀹?涔?宸ヤ?琛ㄧ????绉?????瀹?涔?.

                // Set active sheet index to the first sheet, so Excel opens this as the first sheet
                $objPHPExcel->setActiveSheetIndex(0);

                ob_end_clean();//娓??ょ??插?虹????瀹?浠ラ?插?煎?虹????瀹逛貢??,涓??芥??寮?绛???棰?,??涓???濂?
                // Redirect output to a client??s web browser (Excel2007)
                header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
                header('Content-Disposition: attachment;filename="01simple.xlsx"');
                 header('Content-Type: application/vnd.ms-excel;charset=gb2312');//??瀹?涔???瀛?绗???
                header('Cache-Control: max-age=0');
                // If you're serving to IE 9, then the following may be needed
                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, 'Excel2007');//瀵煎?虹???規?瀹?渚???
                $objWriter->save('php://output');//瀵煎??                exit;
            }