thinkPHP的Excel插件
原文地址 http://www.thinkphp.cn/topic/14005.html
总结的注意事项
1实例化第三方类,要在类名前加\ ,不然引用地址不对.
实现步骤:
一:在http://phpexcel.codeplex.com/下载最新PHPExcel放到Vendor下,注意位置:ThinkPHP\Extend\Vendor\PHPExcel\PHPExcel.php。
二:导出excel代码实现
- /**方法**/
- function index(){
- $this->display();
- }
- public function exportExcel($expTitle,$expCellName,$expTableData){
- $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
- $fileName = $_SESSION['account'].date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
- $cellNum = count($expCellName);
- $dataNum = count($expTableData);
- vendor("PHPExcel.PHPExcel");
- $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');
- $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
- // $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][1]);
- }
- // Miscellaneous glyphs, UTF-8
- for($i=0;$i<$dataNum;$i++){
- for($j=0;$j<$cellNum;$j++){
- $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
- }
- }
- 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本窗口打印
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
- $objWriter->save('php://output');
- exit;
- }
- /**
- *
- * 导出Excel
- */
- function expUser(){//导出Excel
- $xlsName = "User";
- $xlsCell = array(
- array('id','账号序列'),
- array('truename','名字'),
- array('sex','性别'),
- array('res_id','院系'),
- array('sp_id','专业'),
- array('class','班级'),
- array('year','毕业时间'),
- array('city','所在地'),
- array('company','单位'),
- array('zhicheng','职称'),
- array('zhiwu','职务'),
- array('jibie','级别'),
- array('tel','电话'),
- array('qq','qq'),
- array('email','邮箱'),
- array('honor','荣誉'),
- array('remark','备注')
- );
- $xlsModel = M('Member');
- $xlsData = $xlsModel->Field('id,truename,sex,res_id,sp_id,class,year,city,company,zhicheng,zhiwu,jibie,tel,qq,email,honor,remark')->select();
- foreach ($xlsData as $k => $v)
- {
- $xlsData[$k]['sex']=$v['sex']==1?'男':'女';
- }
- $this->exportExcel($xlsName,$xlsCell,$xlsData);
- }
第三:导入excel数据代码
- function impUser(){
- if (!empty($_FILES)) {
- import("@.ORG.UploadFile");
- $config=array(
- 'allowExts'=>array('xlsx','xls'),
- 'savePath'=>'./Public/upload/',
- 'saveRule'=>'time',
- );
- $upload = new UploadFile($config);
- if (!$upload->upload()) {
- $this->error($upload->getErrorMsg());
- } else {
- $info = $upload->getUploadFileInfo();
- }
- vendor("PHPExcel.PHPExcel");
- $file_name=$info[0]['savepath'].$info[0]['savename'];
- $objReader = PHPExcel_IOFactory::createReader('Excel5');
- $objPHPExcel = $objReader->load($file_name,$encode='utf-8');
- $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("请选择上传的文件");
- }
- }
四、模板代码
- <html>
- <head>
- </head>
- <body>
- <P><a href="{:U('Index/expUser')}" >导出数据并生成excel</a></P><br/>
- <form action="{:U('Index/impUser')}" method="post" enctype="multipart/form-data">
- <input type="file" name="import"/>
- <input type="hidden" name="table" value="tablename"/>
- <input type="submit" value="导入"/>
- </form>
- </body>
- </html>
thinkPHP的Excel插件的更多相关文章
- php 和thinkphp 对excel操作
php对excel的操作主要通过引入 excel_reader2.php 或者是PHPExcel 类进行 两个文件自行下载 php 对其读操作: 文件目录结构 excel_reader2.php ...
- 免费高端出辕营,横空出世惊鬼神 Excel插件:ExcelPower_Helper 0.41初出茅庐
免费高端出辕营,横空出世惊鬼神 Excel插件:ExcelPower_Helper 0.41初出茅庐 隐鹤 倾心开发 2019.4.1 1. 引言 经过前后大约零零散散的一年的开发, ...
- 【小o地图Excel插件版】计算两点间驾车路径,获取途径道路、驾车距离、耗时等信息
小o地图Excel插件版:一款基于Excel软件开发的地图软件,提供基于Excel表格进行地理数据挖掘.地理数据分析.地图绘制.地图图表等功能的工具类软件.具有易用.高效.稳定的特点,能够满足地理数据 ...
- 【小o地图Excel插件版】不止能做图表,还能抓58、大众点评网页数据...
小o地图Excel插件版:一款基于Excel软件开发的地图软件,提供基于Excel表格进行地理数据挖掘.地理数据分析.地图绘制.地图图表等功能的工具类软件.具有易用.高效.稳定的特点,能够满足地理数据 ...
- 适用于iview的表格转Excel插件
在网上找的一个表格转excel插件,经过修改后使其适用于iview中的table组件 let idTmr; const getExplorer = () => { let explorer = ...
- 导出Excel插件——Export-CSV ---20150610
出处:http://bbs.hcharts.cn/thread-99-1-1.html 导出Excel插件——Export-CSV 一.插件信息 插件名:Export-CSV(导出Execl文件) ...
- 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂安装过程详解及安装失败解决方法
因Excel催化剂用了VSTO的开发技术,并且为了最好的用户体验,用了Clickonce的布署方式(无需人工干预自动更新,让用户使用如浏览器访问网站一般,永远是最新的内容和功能).对安装过程有一定的难 ...
- django入门8之xadmin引入富文本和excel插件
django入门8之xadmin引入富文本和excel插件 Xadmin引入富文本 插件的文档 https://xadmin.readthedocs.io/en/docs-chinese/make_p ...
- 修复ThinkPHP导出excel数字过大时显示为科学记数法
修复ThinkPHP导出excel数字过大时显示为科学记数法,这种显示对于查看的用户来说是及其不友好的.所以,我们要使其转化为正常的数字串! 我在google 的过程中,查了一些资料.其中 1).// ...
随机推荐
- 做支付遇到的HttpClient大坑
前言 HTTPClient大家应该都很熟悉,一个很好的抓网页,刷投票或者刷浏览量的工具.但是还有一项非常重要的功能就是外部接口调用,比如说发起微信支付,支付宝退款接口调用等:最近我们在这个工具上栽了一 ...
- 【Codeforces 276C】Little Girl and Maximum Sum
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 最后的和. 其实可以看成是 ∑bi*ai 的形式. 这里的bi这个系数表示的是有多少个区间覆盖了ai这个元素. 既然这样的话. 那么 ...
- 【codeforces 807D】Dynamic Problem Scoring
[题目链接]:http://codeforces.com/contest/807/problem/D [题意] 给出n个人的比赛信息; 5道题 每道题,或是没被解决->用-1表示; 或者给出解题 ...
- 洛谷—— P1126 机器人搬重物
https://www.luogu.org/problem/show?pid=1126 题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径1.6米的球.在试验阶段,机 ...
- [Beginning SharePoint Designer 2010]Chapter5 主题和样式
本章概要: 1.什么是CSS 2.样式表的组成 3.如何管理CSS适应SPD的工具和特性 4.被SPS使用的关键的CSS类别 5.使用SPD应用样式到你的站点上
- Cocos2d-x3.0 从代码中获取cocostudio编辑的UI控件
依据名字查找控件 须要包括的头文件及名字空间: #include "cocostudio/CocoStudio.h" #include "ui/CocosGUI.h&qu ...
- Foundation框架经常使用数据类型和NSAutoreleasePool自己主动释放池解析
第一.NSAutoreleasePool自己主动释放池解析 1.自己主动释放池的物理实现 自己主动释放池用栈来实现.当你创建一个新的自己主动释放池是,会压栈到栈顶.接受autorelease消息的对象 ...
- 转:centos下升级git版本的操作记录
https://www.cnblogs.com/kevingrace/p/8252517.html 在使用git pull.git push.git clone的时候,或者在使用jenkins发版的时 ...
- 【转】SQL语句删除和添加外键、主键
--删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter ...
- javaweb 之 工具类UUIDUtils
借用一下百度百科的解释,来看一下UUID是什么. UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Ope ...