thinkphp5+layui excel导入功能demo
时间: 2024-12-13 12:24:59 浏览: 4
ThinkPHP5是一款基于PHP的开源框架,而 layui是一个轻量级的前端UI库。要实现ThinkPHP5结合layui的Excel导入功能,你需要做以下几个步骤:
1. **安装依赖**:
- 安装PHPExcel库,用于处理Excel文件。可以使用Composer命令行工具:
```
composer require phpoffice/phpexcel
```
2. **引入必要的文件**:
在HTML页面中,引入layui.css、layui.js以及thinkphp的模板引擎文件。
3. **创建控制器**:
创建一个新的Controller,比如`ImportController.php`,编写一个处理Excel上传并解析的action,如`uploadAction()`。
```php
namespace App\Controller;
use ThinkController;
use \PHPExcel_IOFactory;
class ImportController extends Controller {
public function uploadAction() {
// 获取上传的文件信息
$file = file_upload('file', 'excel'); // 使用ThinkPHP的文件上传函数
if ($file) {
try {
// 加载Excel文件
$objPHPExcel = PHPExcel_IOFactory::load($file['tmp_name']);
// 遍历所有sheet
foreach ($objPHPExcel->getSheetIterator() as $sheet) {
// 处理每一张表的数据
$data = $sheet->toArray();
// 进行业务处理,将数据保存到数据库等地方
// 示例省略,具体操作根据实际需求实现
}
// 返回响应或跳转到成功页
$this->success('Excel导入成功!');
} catch (\Exception $e) {
$this->error($e->getMessage());
}
} else {
$this->error('文件上传失败!');
}
}
}
```
4. **前端表单**:
在前端使用layui构建一个文件选择输入,允许用户上传Excel文件,并提交到上述创建的`uploadAction`。
```html
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" lay-choose=".layui-upload-file" lay-filter="upload" />
<button type="submit">导入</button>
</form>
<script src="layui/layui.js"></script>
<script>
layui.use(['upload'], function () {
var $ = layui.$,
upload = layui.upload;
// 文件上传配置
upload.render({
elem: '#upload',
url: '/import/upload', // 后端接收文件的URL,这里是你的ImportController的uploadAction地址
accept: 'application/vnd.ms-excel,application/octet-stream',
done: function (res, data) {
console.log(res);
},
before: function (files) {
return true;
}
});
});
</script>
```
阅读全文