当前位置:首页 > CMS教程 > 其它CMS > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-17 19:54:12 浏览: 评论:0 

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

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

  1. public function excel_put(){ 
  2.   //先做一个文件上传,保存文件 
  3.   $path=$_FILES['file']; 
  4.   $filePath = "uploads/".$path["name"]; 
  5.   move_uploaded_file($path["tmp_name"],$filePath); 
  6.   //$data=array('B'=>'name','C'=>'pwd','D'=>'money1','E'=>'salt'); 
  7.   $data=array('B'=>'name','C'=>'pid'); 
  8.   $tablename='city2';//表名字 
  9.   $this->excel_fileput($filePath,$data,$tablename); 
  10.  
  11. private function excel_fileput($filePath,$data,$tablename){ 
  12.   $this->load->library("phpexcel");//ci框架中引入excel类 
  13.   $PHPExcel = new PHPExcel(); 
  14.   $PHPReader = new PHPExcel_Reader_Excel2007(); 
  15.   if(!$PHPReader->canRead($filePath)){ 
  16.     $PHPReader = new PHPExcel_Reader_Excel5(); 
  17.     if(!$PHPReader->canRead($filePath)){ 
  18.       echo 'no Excel'
  19.       return ; 
  20.     } 
  21.   } 
  22.   // 加载excel文件 
  23.   $PHPExcel = $PHPReader->load($filePath); 
  24.   // 读取excel文件中的第一个工作表 
  25.   $currentSheet = $PHPExcel->getSheet(0); 
  26.   // 取得最大的列号 
  27.   $allColumn = $currentSheet->getHighestColumn(); 
  28.   // 取得一共有多少行 
  29.   $allRow = $currentSheet->getHighestRow(); 
  30.   // 从第二行开始输出,因为excel表中第一行为列名 
  31.   for($currentRow = 2;$currentRow <= $allRow;$currentRow++){ 
  32.     /**从第A列开始输出*/ 
  33.     //echo $allColumn; 
  34.     for($currentColumn'A';$currentColumn<= $allColumn$currentColumn++){ 
  35.       $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue(); 
  36.       //print_r($val); 
  37.       //die; 
  38.       if($currentColumn == 'A'
  39.       { 
  40.         //echo $val."\t"; 
  41.       }else if($currentColumn <= $allColumn){ 
  42.         $data1[$currentColumn]=$val
  43.       } 
  44.     } 
  45.     foreach($data as $key=>$val){ 
  46.       $data2[$val]=$data1[$key]; 
  47.     } 
  48.     $this->db->insert($tablename,$data2); 
  49.     //print_r($data2); 
  50.     //echo "</br>"; 
  51.   } 
  52.   //echo "\n"; 
  53.   echo "导入成功"

导出数据:

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

Tags: CodeIgniter CI导入

分享到: