在好例子网,分享、交流、成长!
您当前所在位置:首页PHP 开发实例PHP语言基础 → php电子表格 导入/导出excel实例

php电子表格 导入/导出excel实例

PHP语言基础

下载此实例
  • 开发语言:PHP
  • 实例大小:3.15M
  • 下载次数:184
  • 浏览次数:1722
  • 发布时间:2016-09-21
  • 实例类别:PHP语言基础
  • 发 布 人:jinbanglong
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 实例 导出 导入 Excel

实例介绍

【实例简介】  本地访问地址:http://localhost/demo32/index.php/Home/Excel/index
【实例截图】

【核心代码】

<?php
namespace Home\Controller;
use Think\Controller;
class ExcelController extends Controller {
   
   //列表页面
    public function index(){
		
		$map['status']=1;
		if(!empty($_POST['nickname'])){
			$map['nickname']  = array('like',"%$_POST[nickname]%");
			$Page->parameter =   "nickname=".$_POST['nickname'].'&';
			$this->assign('nickname',$_POST['nickname']);
			}
		if(!empty($_POST['email'])){
			$map['email']  = array('like',"%$_POST[email]%");
			$Page->parameter .=   "email=".$_POST['email'];
			$this->assign('email',$_POST['email']);
			}
		
		$User=M("user"); // 实例化User对象// 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取
		$user_list = $User->where($map)->page($_GET['p'].',3')->select();
		dump($User->getLastSql());
		$this->assign('user_list',$user_list);// 赋值数据集
		$count      = $User->where($map)->count();// 查询满足要求的总记录数
		$Page       = new \Think\Page($count,3);// 实例化分页类 传入总记录数和每页显示的记录数
		// 设置分页显示
		$Page->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录&nbsp;第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
    	$Page->setConfig('prev', '上一页');
    	$Page->setConfig('next', '下一页');
    	$Page->setConfig('last', '末页');
   	 	$Page->setConfig('first', '首页');
    	$Page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
		
		$show       = $Page->show();// 分页显示输出
		
		$this->assign('page',$show);// 赋值分页输出
		$this->display(); // 输出模板
    }
	//导入弹窗
	public function import(){
		
		
		$this->display();
		}
	//导入执行方法
	public function import_do(){
		////上传文件
//		 $upload = new \Think\Upload();// 实例化上传类    
//		 $upload->maxSize   =     3145728 ;// 设置附件上传大小    
//		 $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型    
//		 $upload->savePath  =      'Uploads/'; // 设置附件上传目录    // 上传文件     
//		 $info   =   $upload->uploadOne($_FILES['file']);    
//		 if(!$info) {// 上传错误提示错误信息        
//		 	$this->error($upload->getError());    
//		 }else{// 上传成功        
//		 	$this->success('上传成功!');    
//		 }
//		
		//验证文件格式
	    $file_array = explode ( ".", $_FILES['file']['name']);
	    $file_extension = strtolower ( array_pop ( $file_array ) );
	    if($file_extension!='xls'&&$file_extension!='xlsx'){
	        $json['status']=0;
	        $json['mess']='只可以上传电子表格,请重新上传文件';
	        $this->ajaxReturn($json);
	    }
		//读取文件数据
        vendor("PHPExcel.PHPExcel.IOFactory"); 
        
        $objReader=\PHPExcel_IOFactory::createReader('Excel5');
        $PHPReader=\PHPExcel_IOFactory::load($_FILES['file']['tmp_name']);
		if( empty($PHPReader) ){
            $this->_json_echo( 0, 'read error!' );
        }
        $currentSheet = $PHPReader->getSheet(0);
        $allRow = $currentSheet->getHighestRow();       

        //最大条数限制
        if( $allRow > 100 ){
            $this->ajaxReturn(array(),'一次最多录入100条',0);
        }
		
		$user=M('user');
		/**从第二行开始输出,因为excel表中第一行为列名*/
		for($currentRow = 2;$currentRow <= $allRow;$currentRow  ){

            $data[account] = $currentSheet->getCellByColumnAndRow(0,$currentRow)->getValue();
            $data[nickname] = $currentSheet->getCellByColumnAndRow(1,$currentRow)->getValue();
            $data[email] = $currentSheet->getCellByColumnAndRow(2,$currentRow)->getValue();
            $data[remark] = $currentSheet->getCellByColumnAndRow(3,$currentRow)->getValue();
			$data[status]=1;
			
			$add_res=$user->add($data);
		}
		if($add_res){
			$this->success('导入成功');
		}else{
			$this->error('导入失败');
		}
		
						
		
	}
	//电子表格导出
	public function export_do(){
	    $map['status']=1;
	    if(!empty($_POST['nickname'])){
	        $map['nickname']  = array('like',"%$_POST[nickname]%");
	    }
	    if(!empty($_POST['email'])){
	        $map['email']  = array('like',"%$_POST[email]%");
	    }
	    
	    $User=M("user");
	    $user_list = $User->where($map)->select();
	    foreach ($user_list as &$user){
	        $user['create_time']=date('Y-m-d H:i:s',$user['create_time']);
	    }

	    $xlsCell  = array('account'=>'账户','nickname'=>'昵称','email'=>'邮箱','create_time'=>'注册时间'
// 	        array('account','账户'),
// 	        array('nickname','昵称'),
// 	        array('email','邮箱'),
// 	        array('create_time','注册时间')
	    );
	    //exportExcel('user', $xlsCell, $user_list);
	    daochuExcel('user', $xlsCell, $user_list);
	    
	}
	
	
	
	
	
    
    public function verify(){
        $Verify = new \Think\Verify();
        $Verify->fontSize = 14;//验证码字体大小(像素) 默认为25
        $Verify->length   = 4;//验证码位数
        $Verify->useNoise = false;//是否添加杂点 默认为true
        $Verify->codeSet = '0123456789';// 设置验证码字符为纯数字
//         $Verify->fontttf = '5.ttf';
//         $Verify->useZh = true;//中文验证码  如果无法正常显示,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/ 目录下面存在中文字体文件。
        $Verify->entry();
    }
    
    public function check_vcode(){
        $code=I("get.code");
        $this->ajaxReturn(check_verify($code,''));
    }
}

实例下载地址

php电子表格 导入/导出excel实例

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 jinbanglong 发表于: 2016-10-25 11:23 09
太棒了,正愁呢

支持(0) 盖楼(回复)

第 2 楼 jinbanglong 发表于: 2016-10-25 11:23 44
真实用

支持(0) 盖楼(回复)

第 3 楼 wei521zhen 发表于: 2017-11-12 22:40 30
真实用

jinbanglong 2016-10-25 11:23 44

数据库在哪

支持(0) 盖楼(回复)

第 4 楼 三千Q 发表于: 2017-12-15 18:56 06
试试看

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有4条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警