PHPackages                             vishwayon/phpstep - 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. [Framework](/categories/framework)
4. /
5. vishwayon/phpstep

ActiveLibrary[Framework](/categories/framework)

vishwayon/phpstep
=================

PHP Spreadsheet Template Engine

v0.2(5y ago)183MITPHPPHP &gt;=7.4.0

Since Jul 18Pushed 5y ago1 watchersCompare

[ Source](https://github.com/vishwayon/PhpStep)[ Packagist](https://packagist.org/packages/vishwayon/phpstep)[ Docs](http://www.vishwayon.com/)[ RSS](/packages/vishwayon-phpstep/feed)WikiDiscussions master Synced today

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

PhpStep
=======

[](#phpstep)

PHP Spreadsheet Template Engine

Thanks to [PHPOffice/PhpSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet), we are able to generate various types of spreadsheets directly from php. PhpStep is an attempt to automate data populated spreadsheets using **template tags**.

In this project, we put together an existing xslx file containing some template attributes and a structured model or json data to output a ready to use spreadsheet with user readable data.

When to use PhpStep?
--------------------

[](#when-to-use-phpstep)

When you have a requirement to generate a Spreadsheet as output from PHP model objects then PhpStep can be very helpful. Typically you would write code to access data form model objects and use a package like [PHPOffice/PhpSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) to render the output. The output spreadsheet reports might be designed by analysts to meet business needs and this requirement requires developers to codify it and go through a QA process. PhpStep can eliminate the process of having to push the requirement thorugh a SDLC cycle and gives a person with minimal coding skills the ability to generate these reports.

When to use StepService.php?
----------------------------

[](#when-to-use-stepservicephp)

You can publish the StepService.php in any web server and call the page with json data, templated spreadsheet and the output file name. It would render the output file from within an independent process. For request parameters, refer the documentation of StepService.php

### Dependencies

[](#dependencies)

- [PHPOffice/PhpSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet)
- PHP 7.2

### Installation and Usage

[](#installation-and-usage)

```
composer require vishwayon/phpstep "^0.1"
```

Or, use the git repository.

Supported Template Tags
-----------------------

[](#supported-template-tags)

- **$F{field\_name}** - A field/property in the class/data source
- **$Each{Iterator}** - Any collection object/array implementing Iterator interface

### Sample Code

[](#sample-code)

First, create an sample.xlsx file with following structure:

AB$F{message}CountryPopulation$Each{stats}$F{country}$F{population}You can apply various formats to the cells and also create normal formulas.

```
require '../vendor/autoload.php';

$model = new \stdClass();
$model->message = 'Hello World!';
$model->stats = [
    ['country' => 'India', 'population' => 1300]
    ['country' => 'USA', 'population' => 330,
    ['country' => 'Russia', 'population' => 145
];

$reader = PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
$ss = $reader->load("sample.xlsx");
$worksheet = $ss->getActiveSheet();

$re = new PhpStep\RenderWorksheet();
$re->applyData($worksheet, $model);

$writer = PhpOffice\PhpSpreadsheet\IOFactory::createWriter($ss, 'Xlsx');
$writer->save('sampleResult.xlsx');
```

For complex methods, refer to test/TestRenderWorksheet.php and testData.xlsx

Limitations
-----------

[](#limitations)

- Absolute formulas in the worksheet (e.g: $D$13) will not work. They would reference incorrect cells after rendering

### License

[](#license)

PhpStep is licensed under [MIT](https://github.com/vishwayon/PhpStep/blob/master/LICENSE).

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 50% 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 ~2 days

Total

2

Last Release

2174d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/8787459?v=4)[Girish Shenoy](/maintainers/vspl-girish)[@vspl-girish](https://github.com/vspl-girish)

---

Top Contributors

[![vspl-girish](https://avatars.githubusercontent.com/u/8787459?v=4)](https://github.com/vspl-girish "vspl-girish (11 commits)")[![vspl-release-manager](https://avatars.githubusercontent.com/u/10509914?v=4)](https://github.com/vspl-release-manager "vspl-release-manager (9 commits)")[![pshenoy-uc](https://avatars.githubusercontent.com/u/1192820?v=4)](https://github.com/pshenoy-uc "pshenoy-uc (2 commits)")

---

Tags

frameworkphpspreadsheetstep

### Embed Badge

![Health badge](/badges/vishwayon-phpstep/health.svg)

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

###  Alternatives

[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.1k17.8k](/packages/prestashop-prestashop)[abydahana/aksara

Aksara is a CodeIgniter based CRUD Toolkit you can use to build complex applications become shorter, secure and more reliable just in a few lines of code. Serving both CMS or Framework, produce both HEADLESS (RESTful API) or TRADITIONAL (Browser Based), just by writing single controller. Yet it's reusable, scalable and ready to use!

1111.2k](/packages/abydahana-aksara)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1235.9k20](/packages/fleetbase-core-api)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)

PHPackages © 2026

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