PHPExcel的导入导出--导入

上一篇我们说了导出Excel的方法,现在要来解决导入的问题了。

1.前台先上传文件,并返回上传文件的新文件名,再点击导入

上传Excel

2.AdminbaseController
/**
* 导入Excel
* @param type $Excel_file
* @return type
/
public function importExcel($Excel_file){
error_reporting(E_ALL);
date_default_timezone_set('Asia/ShangHai');
vendor("PHPExcel.PHPExcel");
/
* PHPExcel_IOFactory /
// Check prerequisites
if (!file_exists($Excel_file)) {
exit("not found ".$Excel_file."\n");
}
/

重要代码 解决Thinkphp M、D方法不能调用的问题
如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码
*/
//spl_autoload_register ( array ('Think', 'autoload' ) );

        $reader = \PHPExcel_IOFactory::createReader('Excel5'); //设置以Excel5格式(Excel97-2003工作簿)
        $PHPExcel = $reader->load($Excel_file); // 载入excel文件
        $sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
        $highestRow = $sheet->getHighestRow(); // 取得总行数   
        $highestColumm = $sheet->getHighestColumn(); // 取得总列数
        /** 循环读取每个单元格的数据 */
        for ($row = 2; $row <= $highestRow; $row++){//行数是以第1行开始
            for ($column = 'A'; $column <= $highestColumm; $column++) {//列数是以A列开始
                $dataset[$row][] = $sheet->getCell($column.$row)->getValue(); //读取到数组中  
                  
//                echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."
"; } } return $dataset; //返回数组二维数组 exit; }

3.AdminGoodsControoler
/**
* 读取Excel
*/
public function readExcel() {
$save_path = "./data/upload/";

    if (IS_POST) {
        $file = I("post.filename");
        $file || $this->error("请上传Excel文件!");
        $data = $this->importExcel($save_path.$file); //获取数组
        foreach($data as $str_arr){

            $push = array(
                'good_name'=>$str_arr[0],
                'good_img'=>$str_arr[1],
                'old_price'=>$str_arr[2],
                'price'=>$str_arr[3],
                'shop_url'=>$str_arr[4],
                'ticket_url'=>$str_arr[7],
                'start_time'=>$str_arr[5],
                'stop_time'=>$str_arr[6],
                'read_num'=>0,
                'sale_num'=>1,
                'status'=>1,
                'create_time'=>time(),
                'update_time'=>time(),
            );
            $res = $this->model->add($push);               
        }            
        if ($res) {
            $this->success("导入成功!");
        } else {
            $this->error("导入失败!");
        }
    }
}

4.简洁完整的介绍完了excel导入的功能,喜欢的朋友可以作为参考和学习哦

你可能感兴趣的:(PHPExcel的导入导出--导入)