CI框架(CodeIgniter)实现的导入、导出数据操作示例


Posted in PHP onMay 24, 2018

本文实例讲述了CI框架(CodeIgniter)实现的导入、导出数据操作。分享给大家供大家参考,具体如下:

在libraies中引用PHPExcel这个类(phpexcel.php)

public function excel_put(){
  //先做一个文件上传,保存文件
  $path=$_FILES['file'];
  $filePath = "uploads/".$path["name"];
  move_uploaded_file($path["tmp_name"],$filePath);
  //$data=array('B'=>'name','C'=>'pwd','D'=>'money1','E'=>'salt');
  $data=array('B'=>'name','C'=>'pid');
  $tablename='city2';//表名字
  $this->excel_fileput($filePath,$data,$tablename);
}
private function excel_fileput($filePath,$data,$tablename){
  $this->load->library("phpexcel");//ci框架中引入excel类
  $PHPExcel = new PHPExcel();
  $PHPReader = new PHPExcel_Reader_Excel2007();
  if(!$PHPReader->canRead($filePath)){
    $PHPReader = new PHPExcel_Reader_Excel5();
    if(!$PHPReader->canRead($filePath)){
      echo 'no Excel';
      return ;
    }
  }
  // 加载excel文件
  $PHPExcel = $PHPReader->load($filePath);
  // 读取excel文件中的第一个工作表
  $currentSheet = $PHPExcel->getSheet(0);
  // 取得最大的列号
  $allColumn = $currentSheet->getHighestColumn();
  // 取得一共有多少行
  $allRow = $currentSheet->getHighestRow();
  // 从第二行开始输出,因为excel表中第一行为列名
  for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
    /**从第A列开始输出*/
    //echo $allColumn;
    for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
      $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();
      //print_r($val);
      //die;
      if($currentColumn == 'A')
      {
        //echo $val."\t";
      }else if($currentColumn <= $allColumn){
        $data1[$currentColumn]=$val;
      }
    }
    foreach($data as $key=>$val){
      $data2[$val]=$data1[$key];
    }
    $this->db->insert($tablename,$data2);
    //print_r($data2);
    //echo "</br>";
  }
  //echo "\n";
  echo "导入成功";
}

导出数据:

public function excel_out(){
  header("Content-type:text/html");
  header("Content-Disposition:attachment;filename=123.xls");
  $array=$this->db->get("city")->result_array();
  $str="id\t"."name\t"."pid\n";
  foreach($array as $val){
    $str.=$val['id']."\t".$val['name']."\t".$val['pid']."\n";
  }
  echo $str;
}

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
Jun 20 PHP
php导出word文档与excel电子表格的简单示例代码
Mar 08 PHP
PHP解决URL中文GBK乱码问题的两种方法
Jun 03 PHP
php实现插入排序
Mar 29 PHP
PHP线程的内存回收问题
Jul 08 PHP
PHP基于GD库实现的生成图片缩略图函数示例
Jul 05 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 PHP
PHP实现一维数组与二维数组去重功能示例
May 24 #PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 #PHP
yii2安装详细流程
May 23 #PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 #PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 #PHP
PHP工厂模式简单实现方法示例
May 23 #PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 #PHP
You might like
Zerg剧情介绍
2020/03/14 星际争霸
截获网站title标签之家内容的例子
2006/10/09 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
js跳转页面方法总结
2014/01/29 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
Python subprocess模块学习总结
2014/03/13 Python
python遍历数组的方法小结
2015/04/30 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
如何利用python 读取配置文件
2021/01/06 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
毕业生求职的求职信
2013/12/05 职场文书
竟聘演讲稿范文
2013/12/31 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
外出学习心得体会范文
2016/01/18 职场文书
mysql知识点整理
2021/04/05 MySQL
python通过函数名调用函数的几种方法总结
2021/06/07 Python