原文地址 http://www.thinkphp.cn/topic/14005.html

总结的注意事项

1实例化第三方类,要在类名前加\ ,不然引用地址不对.

实现步骤:
一:在http://phpexcel.codeplex.com/下载最新PHPExcel放到Vendor下,注意位置:ThinkPHP\Extend\Vendor\PHPExcel\PHPExcel.php。
二:导出excel代码实现

  1. /**方法**/
  2. function  index(){
  3. $this->display();
  4. }
  5. public function exportExcel($expTitle,$expCellName,$expTableData){
  6. $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
  7. $fileName = $_SESSION['account'].date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
  8. $cellNum = count($expCellName);
  9. $dataNum = count($expTableData);
  10. vendor("PHPExcel.PHPExcel");
  11. $objPHPExcel = new PHPExcel();
  12. $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');
  13. $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
  14. // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.'  Export time:'.date('Y-m-d H:i:s'));
  15. for($i=0;$i<$cellNum;$i++){
  16. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
  17. }
  18. // Miscellaneous glyphs, UTF-8
  19. for($i=0;$i<$dataNum;$i++){
  20. for($j=0;$j<$cellNum;$j++){
  21. $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
  22. }
  23. }
  24. header('pragma:public');
  25. header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
  26. header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
  27. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  28. $objWriter->save('php://output');
  29. exit;
  30. }
  31. /**
  32. *
  33. * 导出Excel
  34. */
  35. function expUser(){//导出Excel
  36. $xlsName  = "User";
  37. $xlsCell  = array(
  38. array('id','账号序列'),
  39. array('truename','名字'),
  40. array('sex','性别'),
  41. array('res_id','院系'),
  42. array('sp_id','专业'),
  43. array('class','班级'),
  44. array('year','毕业时间'),
  45. array('city','所在地'),
  46. array('company','单位'),
  47. array('zhicheng','职称'),
  48. array('zhiwu','职务'),
  49. array('jibie','级别'),
  50. array('tel','电话'),
  51. array('qq','qq'),
  52. array('email','邮箱'),
  53. array('honor','荣誉'),
  54. array('remark','备注')
  55. );
  56. $xlsModel = M('Member');
  57. $xlsData  = $xlsModel->Field('id,truename,sex,res_id,sp_id,class,year,city,company,zhicheng,zhiwu,jibie,tel,qq,email,honor,remark')->select();
  58. foreach ($xlsData as $k => $v)
  59. {
  60. $xlsData[$k]['sex']=$v['sex']==1?'男':'女';
  61. }
  62. $this->exportExcel($xlsName,$xlsCell,$xlsData);
  63. }
复制代码

第三:导入excel数据代码

  1. function impUser(){
  2. if (!empty($_FILES)) {
  3. import("@.ORG.UploadFile");
  4. $config=array(
  5. 'allowExts'=>array('xlsx','xls'),
  6. 'savePath'=>'./Public/upload/',
  7. 'saveRule'=>'time',
  8. );
  9. $upload = new UploadFile($config);
  10. if (!$upload->upload()) {
  11. $this->error($upload->getErrorMsg());
  12. } else {
  13. $info = $upload->getUploadFileInfo();
  14. }
  15. vendor("PHPExcel.PHPExcel");
  16. $file_name=$info[0]['savepath'].$info[0]['savename'];
  17. $objReader = PHPExcel_IOFactory::createReader('Excel5');
  18. $objPHPExcel = $objReader->load($file_name,$encode='utf-8');
  19. $sheet = $objPHPExcel->getSheet(0);
  20. $highestRow = $sheet->getHighestRow(); // 取得总行数
  21. $highestColumn = $sheet->getHighestColumn(); // 取得总列数
  22. for($i=3;$i<=$highestRow;$i++)
  23. {
  24. $data['account']= $data['truename'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
  25. $sex = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
  26. // $data['res_id']    = $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
  27. $data['class'] = $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();
  28. $data['year'] = $objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue();
  29. $data['city']= $objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue();
  30. $data['company']= $objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue();
  31. $data['zhicheng']= $objPHPExcel->getActiveSheet()->getCell("I".$i)->getValue();
  32. $data['zhiwu']= $objPHPExcel->getActiveSheet()->getCell("J".$i)->getValue();
  33. $data['jibie']= $objPHPExcel->getActiveSheet()->getCell("K".$i)->getValue();
  34. $data['honor']= $objPHPExcel->getActiveSheet()->getCell("L".$i)->getValue();
  35. $data['tel']= $objPHPExcel->getActiveSheet()->getCell("M".$i)->getValue();
  36. $data['qq']= $objPHPExcel->getActiveSheet()->getCell("N".$i)->getValue();
  37. $data['email']= $objPHPExcel->getActiveSheet()->getCell("O".$i)->getValue();
  38. $data['remark']= $objPHPExcel->getActiveSheet()->getCell("P".$i)->getValue();
  39. $data['sex']=$sex=='男'?1:0;
  40. $data['res_id'] =1;
  41. $data['last_login_time']=0;
  42. $data['create_time']=$data['last_login_ip']=$_SERVER['REMOTE_ADDR'];
  43. $data['login_count']=0;
  44. $data['join']=0;
  45. $data['avatar']='';
  46. $data['password']=md5('123456');
  47. M('Member')->add($data);
  48. }
  49. $this->success('导入成功!');
  50. }else
  51. {
  52. $this->error("请选择上传的文件");
  53. }
  54. }
复制代码

四、模板代码

    1. <html>
    2. <head>
    3. </head>
    4. <body>
    5. <P><a href="{:U('Index/expUser')}" >导出数据并生成excel</a></P><br/>
    6. <form action="{:U('Index/impUser')}" method="post" enctype="multipart/form-data">
    7. <input type="file" name="import"/>
    8. <input type="hidden" name="table" value="tablename"/>
    9. <input type="submit" value="导入"/>
    10. </form>
    11. </body>
    12. </html>

thinkPHP的Excel插件的更多相关文章

  1. php 和thinkphp 对excel操作

    php对excel的操作主要通过引入 excel_reader2.php 或者是PHPExcel 类进行   两个文件自行下载 php 对其读操作: 文件目录结构 excel_reader2.php ...

  2. 免费高端出辕营,横空出世惊鬼神 Excel插件:ExcelPower_Helper 0.41初出茅庐

    免费高端出辕营,横空出世惊鬼神 Excel插件:ExcelPower_Helper 0.41初出茅庐        隐鹤 倾心开发 2019.4.1 1.   引言 经过前后大约零零散散的一年的开发, ...

  3. 【小o地图Excel插件版】计算两点间驾车路径,获取途径道路、驾车距离、耗时等信息

    小o地图Excel插件版:一款基于Excel软件开发的地图软件,提供基于Excel表格进行地理数据挖掘.地理数据分析.地图绘制.地图图表等功能的工具类软件.具有易用.高效.稳定的特点,能够满足地理数据 ...

  4. 【小o地图Excel插件版】不止能做图表,还能抓58、大众点评网页数据...

    小o地图Excel插件版:一款基于Excel软件开发的地图软件,提供基于Excel表格进行地理数据挖掘.地理数据分析.地图绘制.地图图表等功能的工具类软件.具有易用.高效.稳定的特点,能够满足地理数据 ...

  5. 适用于iview的表格转Excel插件

    在网上找的一个表格转excel插件,经过修改后使其适用于iview中的table组件 let idTmr; const getExplorer = () => { let explorer = ...

  6. 导出Excel插件——Export-CSV ---20150610

    出处:http://bbs.hcharts.cn/thread-99-1-1.html   导出Excel插件——Export-CSV 一.插件信息 插件名:Export-CSV(导出Execl文件) ...

  7. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂安装过程详解及安装失败解决方法

    因Excel催化剂用了VSTO的开发技术,并且为了最好的用户体验,用了Clickonce的布署方式(无需人工干预自动更新,让用户使用如浏览器访问网站一般,永远是最新的内容和功能).对安装过程有一定的难 ...

  8. django入门8之xadmin引入富文本和excel插件

    django入门8之xadmin引入富文本和excel插件 Xadmin引入富文本 插件的文档 https://xadmin.readthedocs.io/en/docs-chinese/make_p ...

  9. 修复ThinkPHP导出excel数字过大时显示为科学记数法

    修复ThinkPHP导出excel数字过大时显示为科学记数法,这种显示对于查看的用户来说是及其不友好的.所以,我们要使其转化为正常的数字串! 我在google 的过程中,查了一些资料.其中 1).// ...

随机推荐

  1. mybatis入门截图二

    -------------------- 线程不安全问题 首先明白什么是线程不安全: 举例:struts2中,每个action中都定义了model模型对象(action类中是全局对象的存在  数据域属 ...

  2. oracle常见sql语句优化

    1.* 号引起的运行效率 尽量降低使用select * 来进行查询,当你查询使用*, 数据库会进行解析并将*转换为所有列. select count(si.student_id)  from Stud ...

  3. nyoj-647-奋斗小蜗牛在请客(进制转换)

    奋斗小蜗牛在请客 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 一路艰辛一路收获.成功爬过金字塔的小蜗牛别提多高兴了.这不为了向以前帮助他的哥们们表达谢意,蜗牛宴请 ...

  4. POJ 1836 Alignment(DP max(最长上升子序列 + 最长下降子序列))

    Alignment Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 14486   Accepted: 4695 Descri ...

  5. hdu2688 Rotate(树状数组)

    题目链接:pid=2688">点击打开链接 题意描写叙述:对一个长度为2<=n<=3000000的数组,求数组中有序对(i<j而且F[i]<F[j])的数量?其 ...

  6. [Phonegap+Sencha Touch] 移动开发19 某些安卓手机上弹出消息框 点击后不消失的解决的方法

    Ext.Msg.alert等弹出框在某些安卓手机上,点击确定后不消失. 原因是: 消息框点击确定后有一段css3 transform动画,动画完毕后才会隐藏(display:none). 有些奇葩手机 ...

  7. php静态函数的使用场景

    php静态函数的使用场景 场景 代码 <?php class Conductor{ public static $i = 100; public function sold(){ $a = se ...

  8. HIT Software Construction Lab 2

    2019年春季学期 计算机学院<软件构造>课程 Lab 2实验报告 姓名 刘帅 学号 班号 1703008 电子邮件 1609192321@qq.com 手机号码 目录   1 实验目标概 ...

  9. v-cli环境的安装

    第一步:node   npm是node的包管理器  yarn 第二步:npm install -g vue-cli或者淘宝镜像                  如果安装失败:在node.js com ...

  10. Codeforces 232E - Quick Tortoise bitset+分治

    题意: 思路: //By SiriusRen #include <cstdio> #include <bitset> #include <vector> using ...