欢迎各位来投稿,投稿邮箱 admin@veimx.com 欢迎各位爱好PHP,linux的朋友们加入我们

thinkphp 使用phpexcel 扩展并且替换键值为列名

PHP spade 298℃

第一 需要下载phpexcel 扩展 到 tp5 的extend目录下(这个随意。。)

第二 在控制器中引入Excel 扩展 include “../extend/Excel/PHPExcel.php”;   //引入excel 扩展

第三 直接上代码

 

public function action($file,$starttime,$endtime){
 $filename = '..'.$file; //$file 传递过来的文件名路径
 //需要判断下后缀
 $extname = explode('.',$file)[1];  //截取后缀名
 
 $reader = ($extname == 'xls') ? \PHPExcel_IOFactory::createReader('Excel5') : \PHPExcel_IOFactory::createReader('Excel2007');  //根据后缀名判断用那个版本来操作
 $PHPExcel = $reader->load($filename); // 载入excel文件
 $sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
 $highestRow = $sheet->getHighestRow(); // 取得总行数
 $highestColumm = $sheet->getHighestColumn(); // 取得总列数
 
 /** 循环读取每个单元格的数据 */
 for($rowIndex = 1; $rowIndex <= $highestRow; $rowIndex++){
 for($colIndex = 'A'; $colIndex <= $highestColumm; $colIndex++){
 $addr = $colIndex.$rowIndex;
 $cell = $sheet->getCell($addr)->getValue();
 $returnData[$rowIndex][] = $cell;
 
 }
 }
 
 
 for ($i=1 ; $i <= 1;$i++){
 $name = $returnData[$i];
 $new_arr=array_values($name);
 }
 
 unset($returnData[1]);
 
 for ($i=2;$i<=count($returnData)+1;$i++){
   //执行替换操作
 foreach ($new_arr as $k => $v){
 $new_data[$i][$v] = $returnData[$i][$k];
 //$new_data[$i]['区间开始时间'] = $starttime;  //这是我自己自定义的
 //$new_data[$i]['区间结束时间'] = $endtime;  //这是我自己自定义的
 }
 }
 
 
 foreach ($new_data as &$v) {
 //写入数据库中 模型操作
 $result = (new IndexModel)->insertTo($v);
 }
 
 
 }

以上就是我的所有代码

 

 



转载请注明:巴蜀风博客-个人爱好博客-你的私人博客 » thinkphp 使用phpexcel 扩展并且替换键值为列名

喜欢 (0)or分享 (0)