有时录入数据很麻烦,但对每一个模型都写一个 Excel 解析类就很麻烦了,现在 tpadmin 提供了一键导入的功能,手动选择需要导入的列和列的对应关系,保证能将数据一次性最快的导入到数据库中
##方法
解析 Excel 头部,即第一行表头信息和列 (A、B、...、A1、...) 的对应关系
`\Excel::parseHeader($file, $type = '')`
联合头部数据对应关系将数据解析到数据库中
`\Excel::parse($file, $header, $perLimit, $insertFunc, $type = '')`
##参数
解析 Excel 头部 `parseHeader()`
| 名称 | 类型 | 说明 |
| --- | --- | --- |
| file | string | Excel 路径名文件名 |
| type | enum | Excel 版本类型,可选 Excel5 或 Excel2007,或为空自动识别 |
联合头部数据对应关系将数据解析到数据库中 `parse()`
| 名称 | 类型 | 说明 |
| --- | --- | --- |
| file | string | Excel 路径名文件名 |
| header | array | 表头对应字段信息 ['A'=>'field1', 'B'=>'field2', ...] |
| perLimit | int | 每次一次性写入数据库中的行数 |
| file | function | 写入数据库的回调函数,可以用匿名函数 |
| type | enum | Excel 版本类型,可选 Excel5 或 Excel2007,或为空自动识别 |
##使用示例
```
// 通过文件上传,然后取到上传后的完整路径文件名
$file = 'demo.xlsx';
// 解析 Excel 头部信息,返回 $excelHeader = ['A' => '第一行A列描述', 'B' => '第一行B列描述', 'C' => '第一行C列描述',...]
$excelHeader = \Excel::parseHeader($file);
// 将 $excelHeader 数据抛给前端,让用户选择对应关系,然后再返回给后台进行对应数据的解析,例如抛给后台的数据如下
$header = ['A' => 'name', 'B' => 'sex', 'C' => 'age'];
$result = \Excel::parse($file, $header, 20, function ($data) {
/*
* $data = [
* ['name' => 'NAME1', 'sex' => 'SEX1', 'age' => 'AGE1'],
* ['name' => 'NAME1', 'sex' => 'SEX1', 'age' => 'AGE1'],
* ...
* ]
*/
/**
* 可以在此处对数据进行过滤处理,例如:
*/
foreach ($data as &$v) {
$v['sex'] = $v['sex'] == '男' ? 1 : 0;
// 从 Excel 里直接解析出来的时间无法使用,需要进行转化,\Excel::excelTime($date, $time=false) 可以将解析出的时间转为为标准时间格式 Y-m-d,如果 $time=true,则解析出来为 Y-m-d H:i:s 格式的时间,如果需要转化为时间戳再次使用 strototime 就 OK 了
$v['date'] = \Excel::excelTime($v['date']);
}
Db::name('TableName')->insertAll($data);
});
```
- 概要
- 开始使用
- 写在前面
- 目录结构
- 模板主题支持
- 前置方法before支持
- 数据返回
- 异常接管
- Rbac 权限管理
- 开始使用
- 用户管理
- 分组管理
- 节点管理
- 角色管理
- 使用流程
- 其他
- 代码自动生成 v1.2
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 示例三 - 从数据表生成
- 示例四 - 指定生成的文件
- 示例五 - 命令行模式
- 示例六 - 模拟命令行模式
- 代码自动生成
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 控制器
- 公共控制器
- traits 多继承 Controller
- 公开不授权控制器
- 其他控制器
- 标签扩展
- 模板
- 网站操作日志
- 节点图
- 行为驱动
- 其他后端方法
- Excel一键导出
- Excel一键导入
- 文件下载
- 邮件发送
- 七牛文件上传
- id加密
- 前端
- ajax请求
- 表单校验
- 丰富弹层
- 异步操作
- 表格溢出
- 随机字符串
- 自动面包屑导航
- 动态加载文件
- 文件上传
- Tab 切换
- 图片预览
- 二维码生成
- 日历组件
- 升级指导
- 更新日志
- FAQ