(需下載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; }
<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; }