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(1) php开发环境配置
Feb 15 PHP
PHP缓存技术的使用说明
Aug 06 PHP
php 阴历-农历-转换类代码
Jan 16 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
php中序列化与反序列化详解
Feb 13 PHP
PHP函数积累总结
Mar 19 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
Oct 11 PHP
php桥接模式应用案例分析
Oct 23 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 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中使用excel的简单介绍
2013/08/02 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
详解js的六大数据类型
2016/12/27 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
详解vuex的简单使用
2018/03/12 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
pandas-resample按时间聚合实例
2019/12/27 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
Python Merge函数原理及用法解析
2020/09/16 Python
环境工程求职简历的自我评价范文
2013/10/24 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
Python图像处理之图像拼接
2021/04/28 Python
react 路由Link配置详解
2021/11/11 Javascript
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS