去评论
dz插件网

PHPexcel自动判断excel类型并读取excel所有sheet内容

镖师
2023/04/21 23:34:58
  1.      include "PHPExcel.php";
  2.     /*
  3.      * 读取excel表数据
  4.      */
  5.     public function readExcel($filename){
  6.         $pathinfo = pathinfo(strtolower($filename));
  7.         if($pathinfo['extension'] == 'xlsx'){
  8.             $PHPReader = new PHPExcel_Reader_Excel2007();
  9.             //if(!$PHPReader->canRead($filePath)){
  10.         }elseif($pathinfo['extension'] == 'xls'){
  11.             $PHPReader = new PHPExcel_Reader_Excel5();
  12.         }else{
  13.             return 'not support file type';
  14.         }
  15.         $PHPExcel   = $PHPReader->load($filename);
  16.         // echo is_object($PHPExcel).'mmm';exit; //查看是否初始化成功
  17.         //获取工作表的数目
  18.         $sheetCount = $PHPExcel->getSheetCount();
  19.         for($i = 0; $i < $sheetCount; $i++){
  20.             /**读取excel文件中的第一个工作表*/
  21.             $currentSheet = $PHPExcel->getSheet($i);
  22.             /**取得最大的列号*/
  23.             $allColumn = $currentSheet->getHighestColumn();
  24.             /**取得一共有多少行*/
  25.             $allRow = $currentSheet->getHighestRow();
  26.             /**从第二行开始输出,因为excel表中第一行为列名*/
  27.             for($currentRow = 1; $currentRow <= $allRow; $currentRow++){
  28.                 /**从第A列开始输出*/
  29.                 $row        = [];
  30.                 for($currentColumn= 'A'; $currentColumn <= $allColumn; $currentColumn++){
  31.                     /**ord()将字符转为十进制数*/
  32.                     $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();
  33.                     /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
  34.                     //$val = $currentSheet->getCell($currentColumn.$currentRow)->getValue();
  35.                     if($val instanceof PHPExcel_RichText){//富文本转换字符串  
  36.                         $val = $val->__toString();  
  37.                     }
  38.                     $row[] = $val;
  39.                 }
  40.                 //echo "</br>";
  41.                 if(!empty($row)) $sheetdata[]  = $row;
  42.                 unset($row);
  43.             }
  44.             $data['sheet'.$i] = $sheetdata;
  45.             $currentSheet     = $sheetdata  = null;
  46.         }
  47.         return $data;
  48.     }
  49. 打印结果$data:
  50. Array
  51. (
  52.     [sheet0] => Array
  53.         (
  54.             [0] => Array
  55.                 (
  56.                     [0] => id
  57.                     [1] => uid
  58.                     [2] => 昵称
  59.                     [3] => 状态
  60.                     [4] => 原因
  61.                     [5] => ip
  62.                     [6] => 手机
  63.                     [7] => 时间
  64.                 )
  65.             [1] => Array
  66.                 (
  67.                     [0] => 592
  68.                     [1] => 25
  69.                     [2] => 0000null
  70.                     [3] => 正常
  71.                     [4] => 没有原因的原因
  72.                     [5] => 195.168.1.5
  73.                     [6] => 13800138000
  74.                     [7] => 2016-11-23 10:11:49
  75.                 )
  76.         )
  77.     [sheet1] => Array
  78.         (
  79.             [0] => Array
  80.                 (
  81.                     [0] => 列1
  82.                     [1] => 列2
  83.                     [2] => 列3
  84.                 )
  85.             [1] => Array
  86.                 (
  87.                     [0] => 111值1
  88.                     [1] => 222佱2
  89.                     [2] => 333值3
  90.                 )
  91.         )
  92. )
  93. 青云大叔出品,必属精品。