多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 多行数据处理 > 说明: 导入多行数据的事件处理。数据量多推荐使用此方法 注意:`rows` 优先级小于 `row` 方法:`rows($callable)` * 参数 **callable** (必须),为 callable 闭包。 ```php rows(function($rowsData){...}); ``` * 参数 * **rowsData** array 类型 当前导入的多行数据,固定参数如下: ```php rows(function($rowsData){ // id 为导入数据行唯一标识 foreach($rowsData as $id=>$data){ // 当前导入数据行对应工作表。sheet设置时存在 $sheet = $data["sheet"]; // 当前导入数据行唯一标识 $id = $data["id"]; // 当前导入数据行数据 $row = $data["row"]; ... } ... }); ``` * 返回值:mixed|string|array 类型 * 失败: 返回 array。例:id=4和5 的数据导入失败了,代码如下: ```php rows(function($rowsData){ .... $error = [ 4=>"姓名格式错误", 5=>"年龄错误", ]; return $error; }); ``` 返回 string。表示整批导入失败原因 ```php rows(function($rowsData){ .... return "服务异常"; }); ``` * 成功:不返回结果或返回其他 > 示例 代码如下: ```php $builder=YI('demo') ->sheets(["一年级","二年级","三年级","四年级"]) ->rows(function ($rowsData){ $datas = []; for($rowsData as $id=>$data){ $sheet = $data["sheet"]; $row = $data["row"]; $datas[] = ["grade"=>$sheet]+$row; } Db::name('example')->insertAll($datas); }) ```