mradang/laravel-excel

v3.2.0 2024-03-16 04:01 UTC

This package is auto-updated.

Last update: 2024-04-16 04:15:28 UTC


README

安装

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, // 冻结字段列
);