tp怎么实现excel的导入和导出
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,本篇内容介绍了"tp怎么实现excel的导入和导出"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:
千家信息网最后更新 2024年11月22日tp怎么实现excel的导入和导出
本篇内容介绍了"tp怎么实现excel的导入和导出"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一:下载phpExcel第三方类库
下载地址:http://www.thinkphp.cn/topic/14005.html下载官方网站;
二:下载成功之后将文件放到Vendor下:ThinkPHP\Extend\Vendor\PHPExcel\PHPExcel.php。
三:配置数据库的信息操作(我的是在home文件夹下(application/home/config/config.php)添加如下配置):
'配置值' 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'db_oa', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => 'root', // 密码 'DB_PORT' => 3306, // 端口 'DB_PREFIX' => 'tg_', // 数据库表前缀// 'DB_FIELDS_CACHE' => false, // 启用字段缓存(开发时这个要写成false))?>
四:模板代码:
实现功能的控制器方法:
1>导出数据方法的实现:
function expUser(){//导出Excel //获取表头名: $xlsName = "evaluate_check"; //获取文件里面具体的数据 $xlsCell = array('教师检查作业表', '所属功能','所属权限','所属学生','学生答案' );// 连接数据库找到查询的表 $xlsModel = M('evaluate_check');// 通过调用select方法field查找数据表里面的字段 $xlsData = $xlsModel->Field('id,tep_id,tet_id,student_id,student_anwser')->select(); $this->exportExcel($xlsName,$xlsCell,$xlsData); } public function exportExcel($expTitle,$expCellName,$expTableData){// 抓取文件名将字符编码转换成utf8格式 $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称// 命名Excel文件的文件名称,通过时间函数随即打乱 $fileName = $_SESSION['account'].date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定 //通过count函数获取到字段的行数 $cellNum = count($expCellName); //获取具体的值 $dataNum = count($expTableData);// var_dump(count($expTableData));exit; //引入具体的类库 vendor("PHPExcel.PHPExcel");// echo '111111dfgfhj';exit; //实例化方法,得到所有的方法; $objPHPExcel = new \PHPExcel(); //设置单元格的行数 $cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');// var_dump($cellName);exit;// var_dump($objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1'));exit; $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格// echo '1111111';exit;// var_dump($objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1'));exit;// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.' Export time:'.date('Y-m-d H:i:s')); //对获取的行号进行循环遍历并且赋值 for($i=0;$i<$cellNum;$i++){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i]); } $objPHPExcel->getActiveSheet()->setTitle($expTitle); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',$expTitle); // Miscellaneous glyphs, UTF-8// var_dump($dataNum);exit; //对获取的列好进行遍历赋值输出 for($i=0;$i<$dataNum;$i++){ for($j=0;$j<$cellNum;$j++){ $a = array_values($expTableData[$i]) ; $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3),$a[$j]); } } ob_end_clean();//清楚缓冲避免乱码 header('pragma:public'); //设置表头信息 header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"'); header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印 //通过调用如下方法来创建Excel将值写入 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //进行保存下载 $objWriter->save('php://output'); exit; }
3>导入数据方法的实现:
(1)选取你要导入的xls文件,进行操作
(2)代码如下:
function impUser(){ //判断你的文件是否为空 if (!empty($_FILES)) {// 引入类库 vendor("PHPExcel.PHPExcel"); //获取存储文件的文件名 $file_name=$_FILES['import']['tmp_name']; //调用如下方法来读取你表里面的信息 $objReader = \PHPExcel_IOFactory::createReader('Excel5');// var_dump($objReader);exit; //读取到的临时文件名的信息 $objPHPExcel = $objReader->load($file_name,$encode='utf-8'); //获取Excel表格的列数 $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); // 取得总行数 $highestColumn = $sheet->getHighestColumn(); // 取得总列数// 将值进行写入 for($i=3;$i<=$highestRow;$i++) { $data['account']= $data['truename'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue(); $sex = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue(); // $data['res_id'] = $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue(); $data['class'] = $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue(); $data['year'] = $objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue(); $data['city']= $objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue(); $data['company']= $objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue(); $data['zhicheng']= $objPHPExcel->getActiveSheet()->getCell("I".$i)->getValue(); $data['zhiwu']= $objPHPExcel->getActiveSheet()->getCell("J".$i)->getValue(); $data['jibie']= $objPHPExcel->getActiveSheet()->getCell("K".$i)->getValue(); $data['honor']= $objPHPExcel->getActiveSheet()->getCell("L".$i)->getValue(); $data['tel']= $objPHPExcel->getActiveSheet()->getCell("M".$i)->getValue(); $data['qq']= $objPHPExcel->getActiveSheet()->getCell("N".$i)->getValue(); $data['email']= $objPHPExcel->getActiveSheet()->getCell("O".$i)->getValue(); $data['remark']= $objPHPExcel->getActiveSheet()->getCell("P".$i)->getValue(); $data['sex']=$sex=='男'?1:0; $data['res_id'] =1; $data['last_login_time']=0; $data['create_time']=$data['last_login_ip']=$_SERVER['REMOTE_ADDR']; $data['login_count']=0; $data['join']=0; $data['avatar']=''; $data['password']=md5('123456'); //通过以下方法,将值添加到数据库中; M('Member')->add($data); } $this->success('导入成功!'); }else { $this->error("请选择上传的文件"); } }
说明:最后的数据库信息以你具体的表信息为主,在M('表明')->add($data);
$data里面的数据也以你真实的表为基础
"tp怎么实现excel的导入和导出"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
文件
数据
方法
数据库
信息
名称
字段
所属
配置
成功
代码
内容
函数
功能
单元
地址
学生
情况
文件名
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术较好的学校
知名软件开发外企
网络安全与金融安全知识竞赛
网络工程包括网络安全专业吗
华为公司要软件开发的学生吗
各个数据库都是什么语言开发的
数据库用于储存学习资料
腾讯服务器关闭软件防护
自家搭建服务器教程
大健康产业数据库产品
互联网信息科技公司介绍范文
网络安全周宣传报
动态四轮定位软件开发
代码实现数据库死锁
oracle数据库崩溃
护航网络安全视频
保护计算机网络安全技术措施
关于网络安全问题的文章
江苏服务器管理软件
电脑服务器管理显示设备未就绪
怎么手动添加服务器
服务器里面臭
aix服务器突然ping不通
工业交换机软件开发
苏州智奇胜软件开发有限公司
数据库docker连接
eclipse能生成数据库
深圳苹果软件开发需要多少钱
苹果显示连接服务器时失败
udp服务器搭建