国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

PHPExcel生成和讀取Excel文件實(shí)例程序

2024-05-04 21:48:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

PHPExcel是一個(gè)非常方便生成Excel格式文件的類(lèi),官方下載包中帶有大量如何生成各種樣式excel文件的示例,但沒(méi)有一個(gè)讀取Excel文件的完整例子.Xiaoqiang根據(jù)網(wǎng)上的資料,整理了一份簡(jiǎn)單讀取Excel文件的例子

在網(wǎng)站的管理后臺(tái)經(jīng)常會(huì)使用到報(bào)表的生成和讀取,CSV和Excel都是常用的報(bào)表格式,CSV相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,如果大家有疑問(wèn)我會(huì)相繼發(fā)布一些CSV的實(shí)例,這里主要介紹用PHP 來(lái)生成和讀取Excel文件。

要執(zhí)行下面的函數(shù),首先要引入一個(gè)類(lèi)庫(kù):PHPExcel,PHPExcel是一個(gè)強(qiáng)大的PHP類(lèi)庫(kù),用來(lái)讀寫(xiě)不同的文件格式,比如說(shuō)Excel 2007,PDF格式,HTML格式等等,這個(gè)類(lèi)庫(kù)是建立在Microsoft's OpenXML和PHP 的基礎(chǔ)上的,對(duì)Excel提供的強(qiáng)大的支持,比如設(shè)置工作薄,字體樣式,圖片以及邊框等等,下面來(lái)看看它是如何讀寫(xiě)Excel文件的:

首先來(lái)看如果生成Excel文件:

下面這代碼中函數(shù)arrayToExcel的功能是把一個(gè)二維數(shù)組的數(shù)據(jù)生成一個(gè)excel文件,并且保存在服務(wù)器上,代碼如下:

  1. require_once 'Classes/PHPExcel/Reader/Excel2007.php'
  2. require_once 'Classes/PHPExcel/Reader/Excel5.php'
  3. include 'Classes/PHPExcel/IOFactory.php'
  4. function arrayToExcel($data){ 
  5. $objPHPExcel = new PHPExcel(); 
  6. $objPHPExcel->setActiveSheetIndex(0); 
  7. $objPHPExcel->getActiveSheet()->setTitle('firstsheet'); 
  8. $objPHPExcel->getDefaultStyle()->getFont()->setName('Arial'); 
  9. $objPHPExcel->getDefaultStyle()->getFont()->setSize(10); 
  10. //add data 
  11. $i = 2; 
  12. foreach ($data as $line){ 
  13. $objPHPExcel->getActiveSheet()->setCellValue('A'.$i$line['From']); 
  14. $objPHPExcel->getActiveSheet()->getCell('A'.$i)->setDataType('n'); 
  15. $objPHPExcel->getActiveSheet()->setCellValue('B'.$i$line['To']); 
  16. $objPHPExcel->getActiveSheet()->getCell('B'.$i)->setDataType('n'); 
  17. $i++; 
  18. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel'Excel5'); 
  19. $file = 'excel.xls'
  20. $objWriter->save($file); 
  21. }  

如果你不希望保存在服務(wù)器上,希望生成以后直接下載到客戶端,可以在輸出文件的時(shí)候加入下面的代碼,而不使用 $objWriter->save($file);代碼如下:

  1. header("Pragma: public"); 
  2. header("Expires: 0"); 
  3. header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); 
  4. header("Content-Type:application/force-download"); 
  5. header("Content-Type:application/vnd.ms-execl"); 
  6. header("Content-Type:application/octet-stream"); 
  7. header("Content-Type:application/download"); 
  8. header('Content-Disposition:attachment;filename="excel.xls"'); 
  9. header("Content-Transfer-Encoding:binary"); 
  10. $objWriter->save('php://output'); 

接下來(lái)看一個(gè)讀取Excel文件內(nèi)容的實(shí)例,下面這代碼中函數(shù)excelToArray的功能是把一個(gè)excel里的內(nèi)容重新整理放到一個(gè)數(shù)組了,代碼如下:

  1. require_once 'Classes/PHPExcel.php'
  2. require_once 'Classes/PHPExcel/IOFactory.php'
  3. function excelToArray($file){ 
  4. $objReader = PHPExcel_IOFactory::createReader('Excel5'); 
  5. $objReader->setReadDataOnly(true); 
  6. $objPHPExcel = $objReader->load($file); 
  7. $objWorksheet = $objPHPExcel->getActiveSheet(); 
  8. $highestRow = $objWorksheet->getHighestRow(); 
  9. $highestColumn = $objWorksheet->getHighestColumn(); 
  10. $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
  11. $excelData = array(); 
  12. for ($row = 2; $row <= $highestRow; ++$row) { 
  13. for ($col = 0; $col <= $highestColumnIndex; ++$col) { $excelData[$row][] = $objWorksheet->getCellByColumnAndRow($col$row)->getValue(); 
  14. return $excelData
  15. }  

精簡(jiǎn)辦法,代碼如下:

  1. <?php 
  2. /** 
  3.  * 
  4.  * @copyright 2007-2012 Xiaoqiang. 
  5.  * @author Xiaoqiang.Wu <jamblues@gmail.com> 
  6.  * @version 1.01 
  7.  */ 
  8.  
  9. error_reporting(E_ALL); 
  10.  
  11. date_default_timezone_set('Asia/ShangHai'); 
  12.  
  13. /** PHPExcel_IOFactory */ 
  14. require_once '../Classes/PHPExcel/IOFactory.php'
  15.  
  16.  
  17. // Check prerequisites 
  18. if (!file_exists("31excel5.xls")) { 
  19.     exit("not found 31excel5.xls.n"); 
  20.  
  21. $reader = PHPExcel_IOFactory::createReader('Excel5'); //設(shè)置以Excel5格式(Excel97-2003工作簿) 
  22. $PHPExcel = $reader->load("31excel5.xls"); // 載入excel文件 
  23. $sheet = $PHPExcel->getSheet(0); // 讀取第一??工作表 
  24. $highestRow = $sheet->getHighestRow(); // 取得總行數(shù) 
  25. $highestColumm = $sheet->getHighestColumn(); // 取得總列數(shù) 
  26.  
  27. /** 循環(huán)讀取每個(gè)單元格的數(shù)據(jù) */ 
  28. for ($row = 1; $row <= $highestRow$row++){//行數(shù)是以第1行開(kāi)始 
  29.     for ($column = 'A'$column <= $highestColumm$column++) {//列數(shù)是以A列開(kāi)始 
  30.         $dataset[] = $sheet->getCell($column.$row)->getValue(); 
  31.         echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />"
  32.     } 
  33.  
  34. ?>  

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 且末县| 遂宁市| 安庆市| 乡宁县| 万宁市| 进贤县| 河北区| 安徽省| 银川市| 呼玛县| 康定县| 区。| 和平县| 利川市| 阳江市| 义乌市| 闽侯县| 监利县| 陵水| 九江市| 新津县| 象山县| 得荣县| 汕尾市| 石台县| 巴林右旗| 安国市| 婺源县| 河东区| 准格尔旗| 南安市| 景泰县| 镇康县| 府谷县| 梁山县| 平阳县| 通许县| 尼玛县| 栾城县| 清原| 安国市|