我们经常会在系统中用到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
~~~
![](https://box.kancloud.cn/30d2d295eab4aa1e98ae13e147c5eb70_561x257.jpg)
## 应用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)一个最简易的 页面,不要介意啊。我们主要看功能。
![](https://box.kancloud.cn/d13cc35966190605501bd1666b13f090_411x111.jpg)
下面,我们整理一个excel,将他上传,交给 excel 这个函数来处理。我在本地新建了一个 text.xlsx
![](https://box.kancloud.cn/a82a06e39966ba46726679dc60aecbe0_512x196.jpg)
这样就可以上传了,让我们来看看,如何获取这个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会得到如下的数组:
![](https://box.kancloud.cn/668abd61a361b0ee1e9f856e5a27d8ea_271x417.jpg)
后面该怎么处理,相信我不说你也明白了吧。