composer require mradang/laravel-excel -vvv
编号 | 姓名 | 年龄 |
---|---|---|
1 | 张三 | 21 |
2 | 李四 | 22 |
3 | 王五 | 23 |
ExcelService::read(
$pathname, // excel 文件绝对路径
1, // 字段名行号
[
// 字段定义
'id' => '编号',
'name' => '姓名',
'age' => '年龄',
],
2, // 数据开始的行号
function (array $cells) {
// 行数据处理函数,每行调用一次
/**
* $cells = [
* 'id' => 1,
* 'name' => '张三',
* 'age' => 21,
* ];
*/
},
);
$values 参数支持类型
- Illuminate\Database\Eloquent\Builder
- Illuminate\Support\Collection
- array
当使用 Builder 类型时,会调用实例的 chunk 方法,分块读取数据
$pathname = ExcelService::write(
'首行通栏标题',
[
// 字段定义
'id' => '编号',
'name' => '姓名',
'age' => '年龄',
],
['id', 'age'], // 数字列
[
// 数据
['id' => 4, 'name' => '赵六', 'age' => 24],
['id' => 5, 'name' => '孙七', 'age' => 25],
['id' => 6, 'name' => '周八', 'age' => 26],
],
function (int $index, $row) {
// 行数据处理函数,每行调用一次,返回字段值数组
return array_values($row);
},
2, // 冻结字段列
);