thinkphp5中使用PHPExcel


thinkphp5中可以使用composer來獲取第三方類庫,使用起來特別方便,例如:可是使用composer下載PHPMailer,think-captcha(驗證碼)等等……

接下來說一下怎么使用PHPExcel,這是一個很好用的第三方類庫。

1.使用composer下載PHPExcel,首先安裝過composer之后,用dos命令行,引入到項目所在目錄下,然后輸入composer require phpexcel/phpexcel ,然后點回車鍵

你會發現項目的目錄中在vendor的目錄下多了一個文件夾(phpexcel),這個文件夾中的東西就是要使用的php中的Excel表格操作

2.在thinkphp中使用,大概分為四個步驟。

 

最簡單的生成Excel文件

(1)首先第一步是:實例化phpexcel
[php]  view plain  copy
  1. $objPHPExcel = new \PHPExcel();  

這里可能會遇到一個問題,報這樣的錯誤。
 
然后,搜索到這個文件把這一行去掉就ok。
(2)獲得當前活動sheet,因為Excel有一個默認的sheet。
[php]  view plain  copy
  1. $objSheet = $objPHPExcel->getActiveSheet();  
[php]  view plain  copy
 
  1. $objSheet ->setTitle("demo");//可以給sheet設置名稱為"demo"  
(3)<1>然后就是在表格中寫入數據
[php]  view plain  copy
 
  1. $objSheet->setCellValue("A1","姓名")->setCellValue("B1","分數");  
  2. $objSheet->setCellValue("A2","張三")->setCellValue("B2","100");  
<2>還有一個方法是用數組
[php]  view plain  copy
 
  1. $array = array(  
  2.     array(),  
  3.     array('姓名','分數'),  
  4.     array('張三','60'),  
  5.     array('李四','61'),  
  6.     array('王五','62'),  
  7. );  
  8. $objSheet -> fromArray($array);//數據較大時,不建議使用此方法,建議使用setCellValue()  
(4)最后就是保存寫好的數據
[php]  view plain  copy
  1. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');//生成一個Excel2007文件  
  2. $objWriter->save('E:/test.xlsx');//保存文件  

從數據庫中到導出文件

[php]  view plain  copy
 
  1. $path = 'E:/';  
  2. $name = 'think_admin';  
  3. $objPHPExcel = new \PHPExcel();  
  4. for ($i=1; $i < 3; $i++) {  
  5.     if ($i>1) {  
  6.         $objPHPExcel->createSheet();   
  7.     }  
  8.       
  9.     $objPHPExcel->setActiveSheetIndex($i-1);//把當前創建的sheet設置為活動sheet  
  10.     $objSheet = $objPHPExcel->getActiveSheet();//獲得當前活動Sheet  
  11.     $objSheet->setTitle("user".$i);  
  12.   
  13.     if($i==1){  
  14.         $db_admin = db('admin')->where('sex','男')->select();  
  15.     }else{  
  16.         $db_admin = db('admin')->where('sex','女')->select();  
  17.     }  
  18.         $objSheet->setCellValue('A1','id')->setCellValue('B1','user')->setCellValue('C1','name')->setCellValue('D1','password')  
  19.     ->setCellValue('E1','imgpath')->setCellValue('F1','tel')->setCellValue('G1','sex')->setCellValue('H1','age');  
  20.     $j = 2;  
  21.     foreach ($db_admin as $key => $value) {  
  22.         $objSheet->setCellValue('A'.$j,$value['id'])->setCellValue('B'.$j,$value['user'])->setCellValue('C'.$j,$value['name'])  
  23.         ->setCellValue('D'.$j,$value['password'])  
  24.         ->setCellValue('E'.$j,$value['imgpath'])->setCellValue('F'.$j,$value['tel'])->setCellValue('G'.$j,$value['sex'])  
  25.         ->setCellValue('H'.$j,$value['age']);  
  26.         $j++;  
  27.     }  
  28. }  
  29. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');  
  30. $objWriter->save($path.$name.'.xlsx');  

 

在瀏覽器上輸出Excel文件(下載)

 

[php]  view plain  copy
 
  1. $filename = 'think_admin.xls';  
  2. $objPHPExcel = new \PHPExcel();  
  3. for ($i=1; $i < 3; $i++) {  
  4. if ($i>1) {  
  5. $objPHPExcel->createSheet();  
  6. }  
  7. $objPHPExcel->setActiveSheetIndex($i-1);//把當前創建的sheet設置為活動sheet  
  8. $objSheet = $objPHPExcel->getActiveSheet();//獲得當前活動Sheet  
  9. $objSheet->setTitle("user".$i);  
  10. if($i==1){  
  11. $db_admin = db('admin')->where('sex','男')->select();  
  12. }else{  
  13. $db_admin = db('admin')->where('sex','女')->select();  
  14. }  
  15. $objSheet->setCellValue('A1','id')->setCellValue('B1','user')->setCellValue('C1','name')->setCellValue('D1','password')  
  16. ->setCellValue('E1','imgpath')->setCellValue('F1','tel')->setCellValue('G1','sex')->setCellValue('H1','age');  
  17. $j = 2;  
  18. foreach ($db_admin as $key => $value) {  
  19. $objSheet->setCellValue('A'.$j,$value['id'])->setCellValue('B'.$j,$value['user'])->setCellValue('C'.$j,$value['name'])->setCellValue('D'.$j,$value['password'])  
  20. ->setCellValue('E'.$j,$value['imgpath'])->setCellValue('F'.$j,$value['tel'])->setCellValue('G'.$j,$value['sex'])->setCellValue('H'.$j,$value['age']);  
  21. $j++;  
  22. }  
  23. }  
  24. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
  25. header('Content-Type: application/vnd.ms-excel');//告訴瀏覽器將要輸出excel03文件  
  26. header('Content-Disposition: attachment;filename="'.$filename.'"');//告訴瀏覽器將輸出文件的名稱(文件下載)  
  27. header('Cache-Control: max-age=0');//禁止緩存  
  28. $objWriter->save("php://output");  

 

轉載地址:http://blog.csdn.net/Iloveyougirls/article/details/53212402

 如需轉載請注明出處,https://www.cnblogs.com/zhuchenglin/p/6554542.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM