PHPackages                             staf4/spout - 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. staf4/spout

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

staf4/spout
===========

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

v3.3.0(5y ago)127Apache-2.0PHPPHP &gt;=7.2.0

Since Jan 16Pushed 1y agoCompare

[ Source](https://github.com/Staf4/spout)[ Packagist](https://packagist.org/packages/staf4/spout)[ Docs](https://www.github.com/box/spout)[ GitHub Sponsors](https://github.com/adrilo)[ RSS](/packages/staf4-spout/feed)WikiDiscussions master Synced 1mo ago

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

Spout
=====

[](#spout)

[![Latest Stable Version](https://camo.githubusercontent.com/75b9654bf2f2833cea180490b72f597c1b17f88391085da11328d9ae3431a918/68747470733a2f2f706f7365722e707567782e6f72672f626f782f73706f75742f762f737461626c65)](https://packagist.org/packages/box/spout)[![Project Status](https://camo.githubusercontent.com/5b5a2250da48f45495a817a4bcdabb5d101fff298acebe00a55a52815b7119ed/687474703a2f2f6f70656e736f757263652e626f782e636f6d2f6261646765732f6163746976652e737667)](http://opensource.box.com/badges)[![Build Status](https://camo.githubusercontent.com/47d6f64a1e3df553a95da81a2a1d2c0c8eecf904211f1b429bdffab978a7c2ed/68747470733a2f2f7472617669732d63692e6f72672f626f782f73706f75742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/box/spout)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/27c3ad2bdb999d93f8ddf90af3714a02a40b787fe13da865ed7ac668af37a84f/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f626f782f73706f75742f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/box/spout/?branch=master)[![Code Coverage](https://camo.githubusercontent.com/bd665151a363140fa1439bba4a956f8ae9bee52d3881bbc562b859b3b55a4d42/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f626f782f73706f75742f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/box/spout/?branch=master)[![Total Downloads](https://camo.githubusercontent.com/7b134b5eba7c7ab4518b314ced0f62e2d61b5137e3d1fbc52004751a84e74848/68747470733a2f2f706f7365722e707567782e6f72672f626f782f73706f75742f646f776e6c6f616473)](https://packagist.org/packages/box/spout)

Spout is a PHP library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way. Contrary to other file readers or writers, it is capable of processing very large files while keeping the memory usage really low (less than 3MB).

Join the community and come discuss about Spout: [![Gitter](https://camo.githubusercontent.com/abe08b740a4156153736f791393ec4da6619c4be73212e75769f52edacc0e2b5/68747470733a2f2f6261646765732e6769747465722e696d2f4a6f696e253230436861742e737667)](https://gitter.im/box/spout?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)

Documentation
-------------

[](#documentation)

Full documentation can be found at .

Requirements
------------

[](#requirements)

- PHP version 5.4.0 or higher
- PHP extension `php_zip` enabled
- PHP extension `php_xmlreader` enabled

Running tests
-------------

[](#running-tests)

On the `master` branch, only unit and functional tests are included. The performance tests require very large files and have been excluded. If you just want to check that everything is working as expected, executing the tests of the `master` branch is enough.

If you want to run performance tests, you will need to checkout the `perf-tests` branch. Multiple test suites can then be run, depending on the expected output:

- `phpunit` - runs the whole test suite (unit + functional + performance tests)
- `phpunit --exclude-group perf-tests` - only runs the unit and functional tests
- `phpunit --group perf-tests` - only runs the performance tests

For information, the performance tests take about 30 minutes to run (processing 1 million rows files is not a quick thing).

> Performance tests status: [![Build Status](https://camo.githubusercontent.com/15d28ee4eb26a17fb79cc91599e6cba5559ac0cbea4ca5a71e133c2da07379da/68747470733a2f2f7472617669732d63692e6f72672f626f782f73706f75742e7376673f6272616e63683d706572662d7465737473)](https://travis-ci.org/box/spout)

Support
-------

[](#support)

You can ask questions, submit new features ideas or discuss about Spout in the chat room:
[![Gitter](https://camo.githubusercontent.com/abe08b740a4156153736f791393ec4da6619c4be73212e75769f52edacc0e2b5/68747470733a2f2f6261646765732e6769747465722e696d2f4a6f696e253230436861742e737667)](https://gitter.im/box/spout?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)

Copyright and License
---------------------

[](#copyright-and-license)

Copyright 2017 Box, Inc. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Example XLSX
------------

[](#example-xlsx)

```
use Box\Spout\Writer\Style\StyleBuilder;
use Box\Spout\Writer\WriterFactory;

// Инициализация
$excel = WriterFactory::create(\Box\Spout\Common\Type::XLSX);
// Установка стилей для строк
$styleHead = (new StyleBuilder())->setAlignVertical('top')->setFontSize(11)->setFontBold()->build();
$styleBody = (new StyleBuilder())->setAlignVertical('top')->setFontSize(11)->build();
// Установка ширины колонок
$excel->setAdditionalSettings(['rowsHeight' => 29, 'columnsWidth' => [14, 16, 25, 25, 25, 25, 25, 13, 13, 16, 25, 25, 30]]);
// Установка автофильтра
$excel->getCurrentSheet()->setAutoFilter("A1:M{$i}");
// Открытие файла для записи
$excel->openToBrowser('file.xlsx', true); // если не нужно доравбять заголовки - false
// Добавление заголовков
$excel->addRowWithStyle(['Столбец 1', 'Столбец 2'], $styleHead);
// Добавление данных
$excel->addRowWithStyle(['Данные 1', 'Данные 2'], $styleBody);
// Установка названия страницы
$excel->getCurrentSheet()->setName('Sheet1');
// Вывод
$excel->close();
exit();

```

Example CSV
-----------

[](#example-csv)

```
use Box\Spout\Writer\Style\StyleBuilder;
use Box\Spout\Writer\WriterFactory;

// Инициализация
$excel = WriterFactory::create(\Box\Spout\Common\Type::CSV);
// Установка разделителя
$excel->setFieldDelimiter(';');
// Открытие файла для записи
$excel->openToBrowser('file.csv', true); // если не нужно доравбять заголовки - false
// Добавление заголовков
$excel->addRowWithStyle(['Столбец 1', 'Столбец 2'], null);
// Добавление данных
$excel->addRowWithStyle(['Данные 1', 'Данные 2'], null);
// Вывод
$excel->close();
exit();

```

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 79.3% 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

Every ~74 days

Recently: every ~273 days

Total

37

Last Release

1445d ago

Major Versions

v1.1.0 → v2.0.02015-07-28

v2.7.3 → v3.0.02019-05-24

PHP version history (3 changes)1.0.0PHP &gt;=5.4.0

v3.0.0PHP &gt;=7.1.0

v3.2.0PHP &gt;=7.2.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/7e2ee447179678b51f051504dc112e2ca47a62f77318265e26cf5fd2136afe40?d=identicon)[Staf4](/maintainers/Staf4)

---

Top Contributors

[![adrilo](https://avatars.githubusercontent.com/u/7086917?v=4)](https://github.com/adrilo "adrilo (283 commits)")[![madflow](https://avatars.githubusercontent.com/u/183248?v=4)](https://github.com/madflow "madflow (16 commits)")[![Staf4](https://avatars.githubusercontent.com/u/18266121?v=4)](https://github.com/Staf4 "Staf4 (9 commits)")[![alamirault](https://avatars.githubusercontent.com/u/9253091?v=4)](https://github.com/alamirault "alamirault (7 commits)")[![sfichera](https://avatars.githubusercontent.com/u/3146077?v=4)](https://github.com/sfichera "sfichera (4 commits)")[![eisberg](https://avatars.githubusercontent.com/u/9015003?v=4)](https://github.com/eisberg "eisberg (4 commits)")[![yiranzai](https://avatars.githubusercontent.com/u/20548510?v=4)](https://github.com/yiranzai "yiranzai (3 commits)")[![carusogabriel](https://avatars.githubusercontent.com/u/16328050?v=4)](https://github.com/carusogabriel "carusogabriel (3 commits)")[![jmsche](https://avatars.githubusercontent.com/u/3929498?v=4)](https://github.com/jmsche "jmsche (3 commits)")[![KiNgMaR](https://avatars.githubusercontent.com/u/438358?v=4)](https://github.com/KiNgMaR "KiNgMaR (2 commits)")[![Lewiscowles1986](https://avatars.githubusercontent.com/u/2605791?v=4)](https://github.com/Lewiscowles1986 "Lewiscowles1986 (2 commits)")[![tobya](https://avatars.githubusercontent.com/u/325502?v=4)](https://github.com/tobya "tobya (2 commits)")[![guss77](https://avatars.githubusercontent.com/u/381782?v=4)](https://github.com/guss77 "guss77 (2 commits)")[![lichunqiang](https://avatars.githubusercontent.com/u/2433916?v=4)](https://github.com/lichunqiang "lichunqiang (1 commits)")[![glukkkk](https://avatars.githubusercontent.com/u/4921422?v=4)](https://github.com/glukkkk "glukkkk (1 commits)")[![nimmneun](https://avatars.githubusercontent.com/u/5374300?v=4)](https://github.com/nimmneun "nimmneun (1 commits)")[![philipbrown](https://avatars.githubusercontent.com/u/1579059?v=4)](https://github.com/philipbrown "philipbrown (1 commits)")[![drowe-wayfair](https://avatars.githubusercontent.com/u/126295987?v=4)](https://github.com/drowe-wayfair "drowe-wayfair (1 commits)")[![rodrigowbazevedo](https://avatars.githubusercontent.com/u/6214250?v=4)](https://github.com/rodrigowbazevedo "rodrigowbazevedo (1 commits)")[![garak](https://avatars.githubusercontent.com/u/179866?v=4)](https://github.com/garak "garak (1 commits)")

---

Tags

streamphpexcelxlsxcsvmemoryodfofficeOOXMLspreadsheetodsopenreadwritescale

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/staf4-spout/health.svg)

```
[![Health](https://phpackages.com/badges/staf4-spout/health.svg)](https://phpackages.com/packages/staf4-spout)
```

###  Alternatives

[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)
