具體代碼:
Vendor('PHPExcel.PHPExcel');
public function excel_runimport(){
????$PHPExcel=new \PHPExcel();
????if (! empty ( $_FILES ['file'] ['name'] )){
????????$file_types = explode ( ".", $_FILES ['file'] ['name'] );
????????$exts = $file_types [count ( $file_types ) - 1];
????????/*判別是不是.xls文件驱负,判別是不是excel文件*/
????????if (strtolower ( $exts ) != "xlsx" || strtolower ( $exts ) != "xls"){
????????????????$this->error ( '不是Excel文件诡渴,重新上傳');
????????}
????????//生成唯一的ID $filename = md5(uniqid(microtime(true),true));
? ? ? ? $config=array( 'maxSize'=>70000000,
????????????????'exts'=>array('xlsx','xls'),
????????????????'rootPath'=>'./Uploads/excel/',
????????????????//保存的文件名
????????????????'saveName' =>$filename,
????????????????//開啟子目錄
????????????????'subName' =>array('date','Ymd'),
????????);
????????$upload=new \Think\Upload($config);
????????$info=$upload->upload();
????????if($info){ if($exts == 'xls'){
????????????import("Vendor.PHPExcel.Reader.Excel5");
????????????$PHPReader=new \PHPExcel_Reader_Excel5();
????????}else if($exts == 'xlsx'){
????????????import("Vendor.PHPExcel.Reader.Excel2007");
????????????$PHPReader=new \PHPExcel_Reader_Excel2007();
????????}
????????$rootPath='./Uploads/excel/'; $savePath = $info['file']['savepath'];
????????$saveName=$info['file']['savename'];
? ?????? //加載文件創(chuàng)建對(duì)象
????????$filePath=$rootPath.$savePath.$saveName; $objReader = $PHPReader->load($filePath);
????????//獲取表中的第一個(gè)工作表券膀,如果要獲取第二個(gè),把0改為1歌殃,依次類推
????????$currentSheet=$objReader->getSheet(0);
????????//獲取總列數(shù)
????????$allColumn=$currentSheet->getHighestColumn();
????????//獲取總行數(shù)
????????$allRow=$currentSheet->getHighestRow();
????????//循環(huán)獲取表中的數(shù)據(jù)免钻,$currentRow表示當(dāng)前行糯彬,從哪行開始讀取數(shù)據(jù)纽乱,索引值從0開始
????????$data = array();//創(chuàng)建空數(shù)組接收表格數(shù)據(jù)
????????//從第幾行開始循環(huán)
????????for($rowIndex=2;$rowIndex<=$allRow;$rowIndex++){
????????????//循環(huán)讀取每個(gè)單元格的內(nèi)容。注意行從1開始掀亥,列從A開始
????????????//循環(huán)列
????????????????for($colIndex='A';$colIndex<=$allColumn;$colIndex++){
????????????????????????$addr = $colIndex.$rowIndex;
????????????????????????$cell = $currentSheet->getCell($addr)->getValue();
????????????????????????if($cell instanceof PHPExcel_RichText){
????????????????????????????//富文本轉(zhuǎn)換字符串
????????????????????????????$cell = $cell->__toString();
????????????????????????}
????????????????????$data[$rowIndex][$colIndex] = $cell;
????????????}
????????}
????????????if(is_file($filename)) unlink($filename);
????????????}else{
????????????????echo $upload->getError();
????????????}
????????????????// $this->success ('導(dǎo)入數(shù)據(jù)庫(kù)成功',U('excel_import'),1);
? ? }
}