php 读取excel文件

首先下载插件PHPExcel (PHPExcel-1.8),以tp5框架为例,将该文件放在verdor文件夹下。然后引入IOFactory文件。

1.读取文件的部分内容(用于固定格式)

 1 public function readExcel($filename){
 2             try {
 3                 Vendor('PHPExcel/PHPExcel/IOFactory');
 4                 $reader = \PHPExcel_IOFactory::createReader('Excel2007');
 5                 $PHPExcel = $reader->load($filename); // 文档名称
 6                 $objWorksheet = $PHPExcel->getActiveSheet();   #获取当前sheet
 7                 $highestRow = $objWorksheet->getHighestRow(); // 取得总行数
 8                 $highestColumn = $objWorksheet->getHighestColumn(); // 取得总列数
 9                 $data = array();
10                 for ($row = 1; $row <= $highestRow; $row++) {
11                     #从第二行开始,依次获取多少列的内容 因为第一行一般是表头 也可再加一个for循环 获取每一列的内容
12                     $A = $objWorksheet->getCellByColumnAndRow(0, $row)->getValue();
13                     $B = $objWorksheet->getCellByColumnAndRow(1, $row)->getValue();
14                     array_push($data,$A,$B);
15                 }
16                 return $data;
17             } catch (Exception $e) {
18                 $this->ajaxReturn(array(
19                     'code' => -1,
20                     'msg' => $e->getMessage()
21                 ));
22             }
23         }
readExcel

 

注:默认从第一行开始,读取A列和B列,以数组的形式返回,但是可以自定义。传入文件路径即可

 

2.读取文件的全部内容(用于多变,未知格式)

 1 public function excelread($path){
 2         try {
 3             Vendor('PHPExcel/PHPExcel/IOFactory');
 4             $reader = \PHPExcel_IOFactory::createReader('Excel5');
 5             $PHPExcel = $reader->load($path); // 文档名称
 6             $objWorksheet = $PHPExcel->getSheet(0);  #获取当前sheet
 7             $highestRow = $objWorksheet->getHighestRow(); // 取得总行数
 8             $highestColumn = $objWorksheet->getHighestColumn(); // 取得总列数
 9             $data =array();
10             for ($row = 1; $row <= $highestRow; $row++) {
11                 for ($col = 'A'; $col != $highestColumn; $col ++) {
12                     #从第二行开始,依次获取多少列的内容 因为第一行一般是表头 也可再加一个for循环 获取每一列的内容
13                     $res = $objWorksheet->getCell($col.$row)->getValue();
14                     $res = mb_convert_encoding($res, "UTF-8", "GBK");
15                     $data[$col][$row] = $res;
16                 }
17             }
18             return $data;
19         } catch (Exception $e) {
20             $this->ajaxReturn(array(
21                 'code' => -1,
22                 'msg' => $e->getMessage()
23             ));
24         }
25     }
View Code

 

转载于:https://www.cnblogs.com/paopao123/p/10599804.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值