tp怎么实现excel的导入和导出
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,本篇内容介绍了"tp怎么实现excel的导入和导出"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:
千家信息网最后更新 2025年01月25日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安全错误
数据库的锁怎样保障安全
服务器帐号密码管理制度
小学生网络安全教育课手工画
年度网络安全调查报告
csv与数据库
国产数据库安全性
电视投屏显示不能访问服务器
罗湖区正规网络技术开发服务价格
上古世纪服务器表
数据库计件
浪潮服务器可以用pe安装系统
智能制造网络安全培训总结
滨州陶瓷软件开发公司电话
天津联想服务器总代
广州三加壹网络技术
张家口网络技术推荐厂家
施耐德服务器报733F
通用数据网络技术
服务器灾难恢复流程
网络安全护卫队部门
杭州吉盘网络技术
数据库安全应用指南
没有指定代理服务器怎么添加
execute数据库
服务器安全检测和防御技术中
杭州边锋网络技术有限公司招
河北智慧供应链软件开发定制推荐
软件开发调薪
无线传感器网络技术的必要性
广州志威软件开发有限公司
whosonfirst数据库