Thinkphp PHPExcel导入

use \think\ExcelToArrary;

// 导入添加
public function lead()
{
   if ($this->request->isPost()) {
       $file = request()->file();
       if (!empty($file['ex'])) {
           $ex = uploadOne($file['ex'], '/public/uploads/book/');
           if ($ex['status'] != 200) return $ex;
           $savePath = ROOT_PATH . $ex['data'];
           $ExcelToArrary = new ExcelToArrary();//实例化
           $res = $ExcelToArrary->read($savePath, "UTF-8", "xls");
           if (!$res) {
               return ajaxReturn('/admin/journal/index', "数据错误", 201);
           }
           $data = [];
           $data['add_time'] = time();
           foreach ($res as $k => $vo) {
               if ($k > 2) {
                   foreach ($res[2] as $key => $item) {
                       $data[$item] = $vo[$key];
                   }
                   $reuls = db("journal")->insert($data);
                   if(!$reuls){
                       return ajaxReturn('/admin/journal/index', "导入中断", 201);
                   }
                   continue;
               }
           }
           return ajaxReturn('/admin/journal/index', "导入成功", 200);
       }
   }
}


/thinkphp/library/think/ExcelToArrary.php

ExcelToArrary.php 内容

<?php
namespace think;

use PHPExcel_IOFactory;
use PHPExcel_Cell;
use PHPExcel;
/**
* 读取Excel数据
*/
class ExcelToArrary
{
   public function __construct() {
       //这些文件需要下载phpexcel,然后放在vendor文件里面。具体参考上一篇数据导出。
       vendor("PHPExcel.PHPExcel.PHPExcel");
       vendor("PHPExcel.PHPExcel.Writer.IWriter");
       vendor("PHPExcel.PHPExcel.Writer.Abstract");
       vendor("PHPExcel.PHPExcel.Writer.Excel5");
       vendor("PHPExcel.PHPExcel.Writer.Excel2007");
       vendor("PHPExcel.PHPExcel.IOFactory");
   }

   public function read($filename,$encode,$file_type){
       if(strtolower ( $file_type )=='xls')//判断excel表类型为2003还是2007
       {
           Vendor("Excel.PHPExcel.Reader.Excel5");
           $objReader = PHPExcel_IOFactory::createReader('Excel5');
           $objReader = PHPExcel_IOFactory::createReader('Excel5');

       }elseif(strtolower ( $file_type )=='xlsx')
       {
           Vendor("Excel.PHPExcel.Reader.Excel2007");
           $objReader = PHPExcel_IOFactory::createReader('Excel2007');
       }
       $objReader->setReadDataOnly(true);
       $objPHPExcel = $objReader->load($filename);
       $objWorksheet = $objPHPExcel->getActiveSheet();
       $highestRow = $objWorksheet->getHighestRow();
       $highestColumn = $objWorksheet->getHighestColumn();
       $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
       $excelData = array();
       for ($row = 1; $row <= $highestRow; $row++) {
           for ($col = 0; $col < $highestColumnIndex; $col++) {
               $excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
           }
       }
       return $excelData;
   }

}


/vendor/Excel

Excel.zip


lzn博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论