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 相关文章推荐
linux使用crontab实现PHP执行计划定时任务
May 10 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
Jul 14 PHP
php命令行用法入门实例教程
Oct 27 PHP
thinkphp配置连接数据库技巧
Dec 02 PHP
php实现的mongodb操作类实例
Apr 03 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 PHP
phpstudy后门rce批量利用脚本的实现
Dec 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
ThinkPHP php 框架学习笔记
2009/10/30 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
JavaScript OOP面向对象介绍
2010/12/02 Javascript
菜鸟javascript基础整理1
2010/12/06 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
python编写简单爬虫资料汇总
2016/03/22 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
南威尔士家居商店:Leekes
2016/10/25 全球购物
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
局域网定义和特性
2016/01/23 面试题
给海归自荐信的建议
2013/12/13 职场文书
学生打架检讨书
2014/02/14 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
求职简历自我评价2015
2015/03/10 职场文书
领导新年致辞2016
2015/07/29 职场文书
技术转让协议书
2016/03/19 职场文书
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
MySQL系列之十一 日志记录
2021/07/02 MySQL
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js