Skip to content

aVadim483/fast-excel-reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

192 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Release Packagist Downloads GitHub License Static Badge

FastExcelReader

🇬🇧 English · 🇷🇺 Русский

FastExcelReader is a part of the FastExcelPhp Project which consists of

Introduction

This library is designed to be lightweight, super-fast and requires minimal memory usage.

FastExcelReader can read Excel compatible spreadsheets in XLSX format (Office 2007+), legacy XLS format (Office 97-2003) and CSV-files. It only reads data, but it does it very quickly and with minimal memory usage.

Features

XLSX format support

  • Supports XLSX format (Office 2007+) with multiple worksheets
  • Supports autodetect currency/numeric/date types
  • Supports auto formatter and custom formatter of datetime values
  • The library can define and extract images from XLSX files
  • The library can read styling options of cells - formatting patterns, colors, borders, fonts, etc.

XLS format support

  • Supports legacy XLS format (Office 97-2003, BIFF8) with the same API as XLSX
  • Values, dates, cell styles, formula text and images are all returned in the same shape
  • The format is chosen by the file signature, not by the extension
  • Streaming as well: a sheet is read in one forward pass with constant memory

CSV format support

  • Delimiter Detection: Automatic detection or manual specification of column delimiters.
  • Wide Encoding Support: Any encoding supported by your PHP environment
  • Supports fields with or without quotes, and escaped quotes (doubled quotes).
  • Multi-line Fields Handles line breaks within quoted fields.
  • Two modes - strict (follows RFC 4180) and tolerant (with non-standard CSV files)

Installation

Use composer to install FastExcelReader into your project:

composer require avadim/fast-excel-reader

Quick start

use \avadim\FastExcelReader\Excel;

// XLSX and legacy XLS are both opened this way; the reader is chosen by the file signature
$excel = Excel::open(__DIR__ . '/files/demo.xlsx');

// Read all rows into a two-dimensional array (ROW x COL)
$rows = $excel->readRows();

// Or read row by row (memory efficient)
$sheet = $excel->sheet();
foreach ($sheet->nextRow() as $rowNum => $rowData) {
    // handle $rowData
}

See more in the Getting Started guide.

Documentation

Guides

API Reference

Examples

You can find more examples in the /demo folder.

Changelog

See CHANGELOG.md for the list of changes.

Do you want to support FastExcelReader?

if you find this package useful you can give me a star on GitHub.

Or you can donate me :)

  • USDT (TRC20) TSsUFvJehQBJCKeYgNNR1cpswY6JZnbZK7
  • USDT (ERC20) 0x5244519D65035aF868a010C2f68a086F473FC82b
  • ETH 0x5244519D65035aF868a010C2f68a086F473FC82b

About

Lightweight and very fast XLSX Excel Spreadsheet and CSV Reader in PHP

Topics

Resources

License

Stars

105 stars

Watchers

4 watching

Forks

Packages

 
 
 

Contributors

Languages