phpExcel實現Excel數據的導入導出(全步驟詳細解析)

1.上傳添加excel

(需下載PHPExcel類文件,引入到項目類庫裏)php

//接收前臺文件,  
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;  
    }

2,導出下載Excel文件

<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;  
      }
相關文章
相關標籤/搜索