PHPackages                             kfteam1991/easy-excel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. kfteam1991/easy-excel

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

kfteam1991/easy-excel
=====================

使用简单实用的语义化接口快速读写Excel文件

v1.0(1y ago)16MITPHPPHP ^7.0|^8.0

Since Sep 1Pushed 1y agoCompare

[ Source](https://github.com/kfteam1991/easy-excel)[ Packagist](https://packagist.org/packages/kfteam1991/easy-excel)[ Docs](https://github.com/kfteam1991/easy-excel)[ RSS](/packages/kfteam1991-easy-excel/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

`Easy Excel`是一个基于 [openspout/openspout](https://github.com/openspout/openspout) 封装的Excel读写工具，可以帮助开发者更快速更轻松地读写Excel文件， 并且无论读取多大的文件只需占用极少的内存。

> 由于`openspout/openspout`只支持读写`xlsx`、`csv`、`ods`等类型文件，所以本项目目前也仅支持读写这三种类型的文件。

文档
--

[](#文档)

[文档](https://jqhph.github.io/easy-excel/)

环境
--

[](#环境)

- PHP &gt;= 8.0
- PHP extension php\_zip
- PHP extension php\_xmlreader
- openspout/openspout &gt;= 4.0
- league/flysystem &gt;= 1.0

安装
--

[](#安装)

```
composer require kfteam1991/easy-excel
```

### 快速开始

[](#快速开始)

#### 导出

[](#导出)

下载

```
use Dcat\EasyExcel\Excel;

$array = [
    ['id' => 1, 'name' => 'Brakus', 'email' => 'treutel@eg.com', 'created_at' => '...'],
    ...
];

$headings = ['id' => 'ID', 'name' => '名称', 'email' => '邮箱'];

// xlsx
Excel::export($array)->headings($headings)->download('users.xlsx');

// csv
Excel::export($array)->headings($headings)->download('users.csv');

// ods
Excel::export($array)->headings($headings)->download('users.ods');
```

保存

```
use Dcat\EasyExcel\Excel;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;

$array = [...];

// 保存到当前服务器
Excel::export($array)->store('/tmp/users.xlsx');

// 使用 filesystem
$adapter = new Local(__DIR__);

$filesystem = new Filesystem($adapter);

Excel::export($array)->disk($filesystem)->store('users.xlsx');

// 使用yzh52521/think-filesystem

Excel::export($array)->disk('local')->store('users.xlsx');
// 也可以
$filesystem = \yzh52521\filesystem\facade\Filesystem::disk('local')->getDriver();
Excel::export('users.xlsx')->disk($filesystem)->store('users.xlsx');
```

获取文件内容

```
use Dcat\EasyExcel\Excel;

$array = [...];

$xlsxContents = Excel::xlsx($array)->raw();

$csvContents = Excel::csv($array)->raw();

$odsContents = Excel::ods($array)->raw();
```

更多导出功能请参考[文档](https://jqhph.github.io/easy-excel/docs/master/export.html)。

#### 导入

[](#导入)

读取所有表格数据

```
use Dcat\EasyExcel\Excel;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;

$headings = ['id', 'name', 'email'];

// 导入xlsx
$allSheets = Excel::import('/tmp/users.xlsx')->headings($headings)->toArray();

// 使用filesystem
$adapter = new Local(__DIR__);

$filesystem = new Filesystem($adapter);

$allSheets = Excel::import('users.xlsx')->disk($filesystem)->headings($headings)->toArray();

print_r($allSheets); // ['Sheet1' => [['id' => 1, 'name' => 'Brakus', 'email' => 'treutel@eg.com', 'created_at' => '...']]]
```

遍历表格

```
use Dcat\EasyExcel\Excel;
use Dcat\EasyExcel\Contracts\Sheet as SheetInterface;
use Dcat\EasyExcel\Support\SheetCollection;

// 导入xlsx
Excel::import('/tmp/users.xlsx')->each(function (SheetInterface $sheet) {
    // 获取表格名称，如果是csv文件，则此方法返回空字符串
    $sheetName = $sheet->getName();

    // 表格序号，从 0 开始
    $sheetIndex = $sheet->getIndex();

    // 是否是最后一次保存前打开的表格
    $isActive = $sheet->isActive();

    // 分块处理表格数据
    $sheet->chunk(100, function (SheetCollection $collection) {
        $chunkArray = $collection->toArray();

        print_r($chunkArray); // [['id' => 1, 'name' => 'Brakus', 'email' => 'treutel@eg.com', 'created_at' => '...']]
    });

});
```

获取指定表格内容

```
use Dcat\EasyExcel\Excel;
use Dcat\EasyExcel\Support\SheetCollection;

// 获取第一个表格内容
$firstSheet = Excel::import('/tmp/users.xlsx')->first()->toArray();

// 获取最后一次保存前打开的表格内容
$activeSheet = Excel::import('/tmp/users.xlsx')->active()->toArray();

// 获取指定名称或序号的表格内容
$sheet = Excel::import('/tmp/users.xlsx')->sheet('Sheet1')->toArray();
$sheet = Excel::import('/tmp/users.xlsx')->sheet(0)->toArray();

// 分块处理表格内容
Excel::import('/tmp/users.xlsx')
    ->first()
    ->chunk(1000, function (SheetCollection $collection) {
        $collection = $collection->keyBy('id');
    });
```

更多导入功能请参考[文档](https://jqhph.github.io/easy-excel/docs/master/import.html)。

License
-------

[](#license)

[The MIT License (MIT)](LICENSE).

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 78.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

620d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/48f6af953b9dc9fe4a98ca5c7939a7c78dc3c6b7b15506eb359f8d9527dc1764?d=identicon)[kfteam](/maintainers/kfteam)

---

Top Contributors

[![jqhph](https://avatars.githubusercontent.com/u/20312339?v=4)](https://github.com/jqhph "jqhph (76 commits)")[![yuanzhihai](https://avatars.githubusercontent.com/u/15060466?v=4)](https://github.com/yuanzhihai "yuanzhihai (14 commits)")[![kfteam1991](https://avatars.githubusercontent.com/u/65326397?v=4)](https://github.com/kfteam1991 "kfteam1991 (2 commits)")[![ljyljy0211](https://avatars.githubusercontent.com/u/1272007?v=4)](https://github.com/ljyljy0211 "ljyljy0211 (2 commits)")[![StyleCIBot](https://avatars.githubusercontent.com/u/11048387?v=4)](https://github.com/StyleCIBot "StyleCIBot (2 commits)")[![ihipop](https://avatars.githubusercontent.com/u/423077?v=4)](https://github.com/ihipop "ihipop (1 commits)")

---

Tags

streamexcelxlsxcsvofficespreadsheetodsreadbox spouteasy excel

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/kfteam1991-easy-excel/health.svg)

```
[![Health](https://phpackages.com/badges/kfteam1991-easy-excel/health.svg)](https://phpackages.com/packages/kfteam1991-easy-excel)
```

###  Alternatives

[dcat/easy-excel

使用简单实用的语义化接口快速读写Excel文件

155373.4k24](/packages/dcat-easy-excel)[openspout/openspout

PHP Library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way

1.1k57.6M131](/packages/openspout-openspout)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
