有時錄入數據很麻煩,但對每一個模型都寫一個 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