我們經常會在系統中用到excel導入的功能。運營人員將需要的數據,寫在excel中,直接導入系統。比他們在 后臺中一個一個的添加要方便快捷。phpexcel 是php操作excel的神奇,可以進行excel的生成以及解析。這里我不講 利用 phpexcel 生成 excel,因為這個類在生成大的 excel 時效率非常的低,還容易導致失敗。所以大的數據導出,建議導出成 csv 格式。
## thinkphp5 集成 phpexcel
依舊是到 packagist 的官網[https://packagist.org](https://packagist.org/),搜索 phpexcel,復制安裝語句。打開 cmd ,進入項目根目錄
~~~
composer require phpoffice/phpexcel
~~~

## 應用phpexcel導入excel
控制器方面,我們在 Tools.php 中新建 excel
~~~
// 導入excel
public function excel()
{
if(request()->isPost()){
}
return $this->fetch();
}
~~~
然后我們來新建一個頁面,添加一個 上傳按鈕,讓用戶可以上傳excel,新建 application\\index\\view\\tools\\excel.html
~~~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上傳excel</title>
</head>
<body>
<form action="{:url('tools/excel')}" method="post" enctype="multipart/form-data">
<input type="file" name="excel" />
<input type="submit" value="提交"/>
</form>
</body>
</html>
~~~
訪問[http://www.phper.com/index/tools/excel](http://www.phper.com/index/tools/excel)一個最簡易的 頁面,不要介意啊。我們主要看功能。

下面,我們整理一個excel,將他上傳,交給 excel 這個函數來處理。我在本地新建了一個 text.xlsx

這樣就可以上傳了,讓我們來看看,如何獲取這個excel中的內容。
~~~
// 導入excel
public function excel()
{
if(request()->isPost()){
$excel = request()->file('excel')->getInfo();
$objPHPExcel = \PHPExcel_IOFactory::load($excel['tmp_name']);//讀取上傳的文件
$arrExcel = $objPHPExcel->getSheet(0)->toArray();//獲取其中的數據
print_r($arrExcel);die;
}
return $this->fetch();
}
~~~
提交excel會得到如下的數組:

后面該怎么處理,相信我不說你也明白了吧。