SimpleXLSX class (Official)
Parse and retrieve data from Excel XLSx files. MS Excel 2007 workbooks PHP reader. Example project simplexlsx.loc
Basic Usage
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Shuchkin\SimpleXLSX;
if ( $xlsx = SimpleXLSX::parse('books.xlsx') ) {
print_r( $xlsx->rows() );
} else {
echo SimpleXLSX::parseError();
}
?>
This will install the latest supported version:
$ composer require shuchkin/simplexlsx
Basic methods
// open SimpleXLSX::parse( $filename, $is_data = false, $debug = false ): SimpleXLSX (or false) SimpleXLSX::parseFile( $filename, $debug = false ): SimpleXLSX (or false) SimpleXLSX::parseData( $data, $debug = false ): SimpleXLSX (or false) // simple $xlsx->rows($worksheetIndex = 0, $limit = 0): array $xlsx->readRows($worksheetIndex = 0, $limit = 0): Generator - helps read huge xlsx $xlsx->toHTML($worksheetIndex = 0, $limit = 0): string // extended $xlsx->rowsEx($worksheetIndex = 0, $limit = 0): array $xlsx->readRowsEx($worksheetIndex = 0, $limit = 0): Generator - helps read huge xlsx with styles $xlsx->toHTMLEx($worksheetIndex = 0, $limit = 0): string // meta $xlsx->dimension($worksheetIndex):array [num_cols, num_rows] $xlsx->sheetsCount():int $xlsx->sheetNames():array $xlsx->sheetName($worksheetIndex):string $xlsx->sheetMeta($worksheetIndex = null):array sheets metadata (null = all sheets) $xlsx->isHiddenSheet($worksheetIndex):bool $xlsx->getStyles():array
XLSX to html table
echo SimpleXLSX::parse('book.xlsx')->toHTML(); or
if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) { echo '<table border="1" cellpadding="3" style="border-collapse: collapse">'; foreach( $xlsx->rows() as $r ) { echo '<tr><td>'.implode('</td><td>', $r ).'</td></tr>'; } echo '</table>'; } else { echo SimpleXLSX::parseError(); }
or styled html table
if ( $xlsx = SimpleXLSX::parse('book_styled.xlsx') ) {
echo $xlsx->toHTMLEx();
}
XLSX get sheet names and sheet indexes
// Sheet numeration started 0
if ( $xlsx = SimpleXLSX::parse( 'xlsx/books.xlsx' ) ) {
print_r( $xlsx->sheetNames() );
print_r( $xlsx->sheetName( $xlsx->activeSheet ) );
}