phpExcel实现Excel数据的导入导出(全步骤详细解析)

一,Excel文件上传,返回数组

(需下载PHPExcel类文件,引入到项目类库里)


1.上传添加excel 

//接收前台文件,  
public function addExcel()  
    {      
        //接收前台文件  
        $ex = $_FILES['excel'];  
        //重设置文件名  
        $filename = time().substr($ex['name'],stripos($ex['name'],'.'));  
        $path = './excel/'.$filename;//设置移动路径  
        move_uploaded_file($ex['tmp_name'],$path);  
        //表用函数方法 返回数组  
        $exfn = $this->_readExcel($path);  
  
        $this->redirect('input');  
    }  
  
    //创建一个读取excel数据,可用于入库  
    public function _readExcel($path)  
    {      
        //引用PHPexcel 类  
        include_once(IWEB_PATH.'core/util/PHPExcel.php');  
        include_once(IWEB_PATH.'core/util/PHPExcel/IOFactory.php');//静态类  
        $type = 'Excel2007';//设置为Excel5代表支持2003或以下版本,Excel2007代表2007版  
        $xlsReader = PHPExcel_IOFactory::createReader($type);    
        $xlsReader->setReadDataOnly(true);  
        $xlsReader->setLoadSheetsOnly(true);  
        $Sheets = $xlsReader->load($path);  
            //开始读取上传到服务器中的Excel文件,返回一个二维数组  
        $dataArray = $Sheets->getSheet(0)->toArray();  
        return $dataArray;  
    }  
<span style="color: rgb(54, 46, 43); font-family: Arial; font-size: 24px; line-height: 26px;">2,导出下载Excel文件</span>
<span style="color: rgb(54, 46, 43); font-family: Arial; font-size: 24px; line-height: 26px;"></span><pre name="code" class="php"><span style="font-size:24px;">/** 
 * 导出文件 
 * @author Jef 
 * @param 
 * @return 
 */</span>  
public function export_file()  
    {      
  
        $u = new IQuery('user');  
        $data = $u->find();  
        $name = 'user_'.time();  
        $this->push($data,$name);  
        $this->redirect('export');  
    }  
  
     /* 导出excel函数*/  
    public function push($data,$name='Excel')  
    {  
  
        include_once(IWEB_PATH.'core/util/PHPExcel.php');  
        error_reporting(E_ALL);  
        date_default_timezone_set('Europe/London');  
        $objPHPExcel = new PHPExcel();  
  
        /*以下是一些设置 ,什么作者  标题啊之类的*/  
         $objPHPExcel->getProperties()->setCreator("转弯的阳光")  
           ->setLastModifiedBy("转弯的阳光")  
           ->setTitle("数据EXCEL导出")  
           ->setSubject("数据EXCEL导出")  
           ->setDescription("备份数据")  
           ->setKeywords("excel")  
          ->setCategory("result file");  
         /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/  
        foreach($data as $k => $v){  
  
             $num=$k+1;  
             $objPHPExcel->setActiveSheetIndex(0)//Excel的第A列,uid是你查出数组的键值,下面以此类推  
                          ->setCellValue('A'.$num, $v['id'])     
                          ->setCellValue('B'.$num, $v['username'])  
                          ->setCellValue('C'.$num, $v['password'])  
                          ->setCellValue('D'.$num, $v['email'])  
                          ->setCellValue('E'.$num, $v['head_ico'])  
                          ->setCellValue('F'.$num, $v['invite'])  
                          ->setCellValue('G'.$num, $v['is_seller_invite']);  
            }  
  
            $objPHPExcel->getActiveSheet()->setTitle('User');  
            $objPHPExcel->setActiveSheetIndex(0);  
             header('Content-Type: applicationnd.ms-excel');  
             header('Content-Disposition: attachment;filename="'.$name.'.xls"');  
             header('Cache-Control: max-age=0');  
             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
             $objWriter->save('php://output');  
             exit;  
      }  


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值