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 相关文章推荐
不要轻信 PHP_SELF的安全问题
Sep 05 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
Jun 24 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 PHP
laravel 判断查询数据库返回值的例子
Oct 11 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 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
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
基于jquery的多功能软键盘插件
2012/07/25 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
videocapture库制作python视频高速传输程序
2013/12/23 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
一道python走迷宫算法题
2018/01/22 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
超简单使用Python换脸实例
2019/03/27 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
python中判断文件结束符的具体方法
2020/08/04 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
大专毕业生自我评价分享
2013/11/10 职场文书
社会实践评语
2014/04/28 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis