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实际应用经验篇(7)
Oct 09 PHP
PHP的博客ping服务代码
Feb 04 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
ThinkPHP分页实例
Oct 15 PHP
discuz目录文件资料汇总
Dec 30 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
php实现的RSS生成类实例
Apr 23 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 PHP
linux下php上传文件注意事项
Jun 11 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
PHP检查网站是否宕机的方法示例
Jul 24 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和ACCESS写聊天室(九)
2006/10/09 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
python定时器使用示例分享
2014/02/16 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
python 读取串口数据的示例
2020/11/09 Python
消防安全管理制度
2014/02/01 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
敬老院标语
2014/06/27 职场文书
员工评语范文
2014/12/31 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
陪护人员误工证明
2015/06/24 职场文书
重温入党誓词主持词
2015/06/29 职场文书
团干部培训班心得体会
2016/01/06 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
python3.9之你应该知道的新特性详解
2021/04/29 Python
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
SQL 聚合、分组和排序
2021/11/11 MySQL
nginx rewrite功能使用场景分析
2022/05/30 Servers
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android