紧接着上面的文件,讲一下PHPExcel的excel文件导入

方法一:一次性把所有的sheet加载遍历,把每个sheet里的数据放到数组里,此方法浪费内存,如果数据量比较大,不适合用

  1. header("Content-Type:text/html;charset=utf-8");
  2. include "./PHPExcel-1.8/Classes/PHPExcel/IOFactory.php";
  3.  
  4. $filename="test.xlsx";
  5. $objPHPExcel=PHPExcel_IOFactory::load($filename);//加载文件
  6. $sheetCount=$objPHPExcel->getSheetCount();//获取excel文件里有多少个sheet
  7. for($i=0;$i<$sheetCount;$i++){
  8. $data=$objPHPExcel->getSheet($i)->toArray();//读取每个sheet里的数据 全部放入到数组中
  9. print_r($data);
  10. }

方法二:选择要加载的sheet,逐行逐列读取,节约内存

  1. header("Content-Type:text/html;charset=utf-8");
  2. include "./PHPExcel-1.8/Classes/PHPExcel/IOFactory.php";
  3.  
  4. $filename="test.xlsx";
  5. $fileType=PHPExcel_IOFactory::identify($filename);//自动获取文件的类型提供给phpexcel用
  6. $objReader=PHPExcel_IOFactory::createReader($fileType);//获取文件读取操作对象
  7.  
  8. $sheetName=array("test");//指定sheet名称
  9. $objReader->setLoadSheetsOnly($sheetName);//只加载指定的sheet
  10. $objPHPExcel=$objReader->load($filename);//加载文件
  11.  
  12. foreach($objPHPExcel->getWorksheetIterator() as $sheet) {//循环取sheet
  13. foreach($sheet->getRowIterator() as $row){//逐行处理
  14. if($row->getRowIndex()<2){//从第二行开始处理
  15. continue;
  16. }
  17. foreach($row->getCellIterator() as $cell){//逐列读取
  18. $data=$cell->getValue();//获取单元格数据
  19. echo $data." ";
  20. }
  21. echo '<br/>';
  22. }
  23. echo '<br/>';
  24. }

导入的时候没有这么多要求,所以相对比较简单,上面的代码一般情况下一般已经够用了,推荐使用第二中方法

相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!