首先,我們還是要導入PHPExcel類文件。。。至於怎么導入。可以參考我寫的導出的那篇文章(http://www.cnblogs.com/hopelooking/p/6230303.html)
但是我們在做導入功能的時候用到的類文件可不是導出時用到的那個類文件,但是文件夾一層包一層,沒辦法那樣一個一個引用,還好,有一個文件
也就是我們做導出的時候用到的這個文件,這個文件里面有幾行代碼我們有沒有注意到???
多了一行加載的文件!
是的,這個就是我們在做導入的時候需要的類文件
做完這一步以后其實還是有很多的bug需要我們調試一下的
運行的時候會報錯
這個里面的PHPExcel沒有找到
進去文件目錄一看才發現實例化的時候失敗了,那是因為文件路徑的問題
還記得我們剛開始在控制器里面實例化的時候用到的路徑嗎?
我們直接用這樣的方式就可以
有好幾個文件報錯,全部采用這種方式就可以了!
好了,我們下載的類文件現在經過調試已經完全適應了這個框架了!接下來就要實現代碼了!
/*
*excel導入
**/
public function ExcelIn(){
header("Content-type: text/html; charset=utf-8");//防止亂碼
$file = $_FILES;//接收文件
$filename = $file['xls']['tmp_name'];//這里其實文件已經傳過來了存放到了臨時路徑,所以我們必須要獲取的是臨時存放路徑
$PHPExcel = new \Org\Excel\PHPExcel();//因為我們是在一個類文件加載的同級文件夾的其他類文件,所以選擇了包含文件,所以必須實例化包含我們要用的那個文件的文件
$objPHPExcel = \PHPExcel_IOFactory::load($filename);//加載接收文件的內容
$sheetCount = $objPHPExcel->getSheetCount();//獲取excel文件里面有多少個sheet
//注意,sheet的下標是從0開始,下邊的這個for循環是針對一個或者多個sheet而言設計的,通用
for($i=0;$i<$sheetCount;$i++){
$data = $objPHPExcel->getSheet($i)->toArray();//讀取每一個sheet里面的數據並且放入到一個數組中
unset($data[0]);
//循環遍歷入庫
foreach($data as $key=>$v){
$loan = M("loan");
$da['corporate'] = $v[1];
$da['img'] = $v[2];
//。。。還可以寫很多你想要的數據
$loan->add($da);
}
}
}
導入的代碼相對來講還是比較簡單的!
解釋:
為什么會銷毀數組中的某一個數組?這是因為我們刪除的是表格中第一行的標題,因為這個東西不是有效數據
沒錯,數組中第一個數組就是綠背景的內容,這些數據我們是不需要入庫的,所以要刪掉
接下來就是循環遍歷入庫了。。。便可以自由發揮了!