thinkPHP5.0 使用PHPExcel導出Excel文件


首先下載PHPExcel類。網上很多,自行下載。

我下載的跟composer下載的不太一樣。我下載的是


 
下載存放目錄.jpg

而composer下載的是:

 
composer下載.jpg

本篇使用的是第一種。所以下載請下載對應的。

前端代碼:

<form action="ADMIN_MAIN/Excel/out" enctype="multipart/form-data" method="post"> <input type="submit" value="導出"> </form> 

創建Excel控制器和out方法:

首先use兩個類,否則會報錯:

use PHPExcel_IOFactory; use PHPExcel; 

然后引入vendor里面的PHPExcel類:

vendor("PHPExcel.PHPExcel.PHPExcel"); vendor("PHPExcel.PHPExcel.Writer.Excel5"); vendor("PHPExcel.PHPExcel.Writer.Excel2007"); vendor("PHPExcel.PHPExcel.IOFactory"); 

一般引用vendor里面的類或者插件用vendor();
里面加載的就是vendor文件,然后想要加載哪個文件,直接寫就行,中間的“.”相當於文件路徑的“/”。
例如加載excel5這個文件:

 
加載.jpg

最后不寫php。這樣就加載進來了。
接下來實例化類時候,一定要加“\”。


 
控制器.jpg

實例化完了之后就先把數據庫里面的數據查出來:

$sql = db('sys_user')->select();

有了數據,就可以設置Excel表的表頭信息了:

 /*--------------設置表頭信息------------------*/ $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'ID編號') ->setCellValue('B1', '用戶名') ->setCellValue('C1', '手機號'); 

這里的A1,B1是A列第一行。以此類推,就是表頭了,想要哪些信息就寫什么,只要數據庫有,接下來可以對的上就行。

接下來就是查到的信息,對號入座到表格中:

 /*--------------開始從數據庫提取信息插入Excel表中------------------*/ $i=2; //定義一個i變量,目的是在循環輸出數據是控制行數 $count = count($sql); //計算有多少條數據 for ($i = 2; $i <= $count+1; $i++) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $sql[$i-2][uid]); $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $sql[$i-2][user_name]); $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $sql[$i-2][user_tel]); 

$i = 2,因為第一行是表頭,所以寫到表格時候只能從第二行開始寫。
然后for循環。不知道的,我也無能為力。

接下來就是設置導入表的名稱等內容了

 /*--------------下面是設置其他信息------------------*/ $objPHPExcel->getActiveSheet()->setTitle('user'); //設置sheet的名稱 $objPHPExcel->setActiveSheetIndex(0); //設置sheet的起始位置 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //通過PHPExcel_IOFactory的寫函數將上面數據寫出來 $PHPWriter = \PHPExcel_IOFactory::createWriter( $objPHPExcel,"Excel2007"); header('Content-Disposition: attachment;filename="用戶信息.xlsx"'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); $PHPWriter->save("php://output"); //表示在$path路徑下面生成demo.xlsx文件 

到這里,數據導出已經完成

 
下載完成.jpg
 
內容.jpg



原文:https://www.jianshu.com/p/6684cfb61a99


免責聲明!

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



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