PHPackages                             lazuli/vsxlsx - 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. lazuli/vsxlsx

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

lazuli/vsxlsx
=============

A (very simple) XLSX parser

v0.0.1(13y ago)78.2k2[1 PRs](https://github.com/scryptmouse/vsxlsx/pulls)MITPHPPHP &gt;=5.3.3

Since Jan 5Pushed 8y ago1 watchersCompare

[ Source](https://github.com/scryptmouse/vsxlsx)[ Packagist](https://packagist.org/packages/lazuli/vsxlsx)[ RSS](/packages/lazuli-vsxlsx/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (1)Versions (2)Used By (0)

VSXLSX
======

[](#vsxlsx)

A (Very Simple) XLSX Parser

Installation
------------

[](#installation)

Install with [Composer](http://getcomposer.org).

```
{
	"require": {
		"lazuli/vsxlsx": "0.0.1"
	}
}
```

Usage
-----

[](#usage)

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

$parser = new VSXLSX\Parser($filename, /*sheet number */);

if ($parser->parse()) {
	// Returns an array
	$parsed = $parser->get_parsed();
	/* Do something with the parsed array */
} else {
	foreach($parser->get_errors() as $error) {
		echo "Error: $error\n";
	}
}
```

Column Names
------------

[](#column-names)

### With a header

[](#with-a-header)

By default, the parser assumes there is a 'header' row. The first row will be used to generate column titles. They will be lowercased and have whitespace replaced by underscores.

Assuming cell A1 is *'Product Name'*, the associated key in the resultant array from `get_parsed()` will be `product_name`.

The column titles can be overridden with an array passed to the `header_names` method before parsing. This array can use numeric or alphabetical indices, interchangeably.

```
	$column_names = array();

	// Any of these will override the first column's title
	$column_names[0] = 'product_title';
	$column_names['a'] = 'product_title';
	$column_names['A'] = 'product_title';

	// This will add a title for the 27th column (index 26)
	$column_names['aa'] = 'image_url';

	$parser->header_names($column_names);
```

### Without a header

[](#without-a-header)

If the parser is missing the header row, use the `has_header_row` method with `false` before parsing.

```
	$parser->has_header_row(false);
```

API Docs
--------

[](#api-docs)

Available [here](http://scryptmouse.github.com/vsxlsx/).

License
-------

[](#license)

MIT

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

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

4928d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8268670a2c3f5f892d66c8e429d6aaa77175813cbcbc798197686fa032d456c3?d=identicon)[lazuli](/maintainers/lazuli)

---

Top Contributors

[![scryptmouse](https://avatars.githubusercontent.com/u/894061?v=4)](https://github.com/scryptmouse "scryptmouse (4 commits)")[![edvordo](https://avatars.githubusercontent.com/u/6738779?v=4)](https://github.com/edvordo "edvordo (2 commits)")

---

Tags

xlsxspreadsheet

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/lazuli-vsxlsx/health.svg)

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

###  Alternatives

[phpoffice/phpspreadsheet

PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine

14.3k318.2M1.5k](/packages/phpoffice-phpspreadsheet)[openspout/openspout

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

1.2k70.2M244](/packages/openspout-openspout)[nuovo/spreadsheet-reader

Spreadsheet reader library for Excel, OpenOffice and structured text files

671891.8k8](/packages/nuovo-spreadsheet-reader)[avadim/fast-excel-writer

Lightweight and very fast XLSX Excel Spreadsheet Writer in PHP

3051.4M11](/packages/avadim-fast-excel-writer)[kartik-v/yii2-export

A library to export server/db data in various formats (e.g. excel, html, pdf, csv etc.)

1693.3M36](/packages/kartik-v-yii2-export)[akeneo-labs/spreadsheet-parser

Akeneo Spreadsheet parser. Reads XLXS files from Microsoft Excel and Open Office

147612.9k6](/packages/akeneo-labs-spreadsheet-parser)

PHPackages © 2026

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