网站地图    收藏   

主页 > php专栏 > php应用 >

PHP通过PHPExcel类导入导出excel - php高级应用

来源:自学PHP网    时间:2014-11-27 22:16 作者: 阅读:

[导读] PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言,可以使用它来读取、写入不同格式的电子表格 导出类:PHPExcel类导出excel,同时对PHPExcel做了些精简处理,...

PHP通过PHPExcel类导入导出excel

PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言,可以使用它来读取、写入不同格式的电子表格.

导出类:PHPExcel类导出excel,同时对PHPExcel做了些精简处理,基本上可以满足数据导出excel的功能,代码如下:

  1. 代码如下 复制代码  
  2. //载入PHPExcel类 
  3. require './phpexcel/PHPExcel.php'
  4.  
  5. //创建一个excel对象实例 
  6. $objPHPExcel = new PHPExcel(); 
  7.  
  8. //设置文档基本属性 
  9. $objProps = $objPHPExcel->getProperties(); 
  10. $objProps->setCreator("Lao Mao"); 
  11. $objProps->setLastModifiedBy("Lao Mao"); 
  12. $objProps->setTitle("Office XLS Test Document"); 
  13. $objProps->setSubject("Office XLS Test Document, Demo"); 
  14. $objProps->setDescription("Test document, generated by PHPExcel."); 
  15. $objProps->setKeywords("office excel PHPExcel"); 
  16. $objProps->setCategory("Test"); 
  17.  
  18. //设置当前的sheet索引,用于后续的内容操作。 
  19. //一般只有在使用多个sheet的时候才需要显示调用。 
  20. //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0 
  21. $objPHPExcel->setActiveSheetIndex(0); 
  22.  
  23. //设置当前活动sheet的名称 
  24. $objActSheet = $objPHPExcel->getActiveSheet(); 
  25. $objActSheet->setTitle('测试Sheet'); 
  26.  
  27. //设置单元格内容
  28. //这里的数据可以从数据库中读取,然后再做循环处理 
  29. $objPHPExcel->getActiveSheet()->SetCellValue('A1''a1'); 
  30. $objPHPExcel->getActiveSheet()->SetCellValue('A2''a2'); 
  31. $objPHPExcel->getActiveSheet()->SetCellValue('A3''a3'); 
  32. $objPHPExcel->getActiveSheet()->SetCellValue('A4''a4'); 
  33. $objPHPExcel->getActiveSheet()->SetCellValue('A5''a5'); 
  34.  
  35. $objPHPExcel->getActiveSheet()->SetCellValue('B1''b1'); 
  36. $objPHPExcel->getActiveSheet()->SetCellValue('B2''b2'); 
  37. $objPHPExcel->getActiveSheet()->SetCellValue('B3''b3'); 
  38. $objPHPExcel->getActiveSheet()->SetCellValue('B4''b4'); 
  39. $objPHPExcel->getActiveSheet()->SetCellValue('B5''b5'); 
  40.  
  41. $objPHPExcel->getActiveSheet()->SetCellValue('C1''c1'); 
  42. $objPHPExcel->getActiveSheet()->SetCellValue('C2''c2'); 
  43. $objPHPExcel->getActiveSheet()->SetCellValue('C3''c3'); 
  44. $objPHPExcel->getActiveSheet()->SetCellValue('C4''c4'); 
  45. $objPHPExcel->getActiveSheet()->SetCellValue('C5''c5'); 
  46.  
  47. //输出文档 
  48. $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 
  49.  
  50. //设置header头部信息,并输出到浏览器 
  51. //header('Content-Type: application/vnd.ms-excel'); 
  52. //header("Content-Disposition:attachment; filename=demo.xls"); 
  53. //header('Cache-Control: max-age=0'); 
  54. //$objWriter->save('php://output'); 
  55.  
  56. //保存至某一位置 
  57. $objWriter->save(dirname(__FILE__) . '/demo.xls'); 

导入excel的方法,代码:

  1. //载入PHPExcel类 
  2. include(dirname(__FILE__).'/phpexcel/PHPExcel.php'); 
  3.  
  4. $Obj = new PHPExcel_Reader_Excel5(); 
  5. $Obj->setReadDataOnly(true); 
  6.  
  7. //读取demo.xls文件 
  8. $phpExcel = $Obj->load(dirname(__FILE__).'/output.xls'); 
  9.  
  10. //获取当前活动sheet 
  11. $objWorksheet = $phpExcel->getActiveSheet(); 
  12.  
  13. //获取行数 
  14. $highestRow = $objWorksheet->getHighestRow(); 
  15.  
  16. //获取列数 
  17. $highestColumn = $objWorksheet->getHighestColumn(); 
  18. $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
  19.  
  20. //循环输出数据 
  21. $data = array(); 
  22. for($row = 1; $row <= $highestRow; ++$row) { 
  23.  for($col = 0; $col < $highestColumnIndex; ++$col) { 
  24.   $val = $objWorksheet->getCellByColumnAndRow($col$row)->getValue(); 
  25.   $data[$row][$col] = trim($val); 
  26.  } 
  27.  
  28. echo '<pre>'
  29. print_r($data); 
  30. echo '</pre>'

但是这种方式有缺陷,老版本的excel有个数据上限,最多65536行数据,这时我们就无法通过excel来实现大数据的导出, 但我估计也没几个有这么多数据吧,当然如果有可以考虑使用csv来操作.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论