PHP code example of shuchkin / simplexlsx
1. Go to this page and download the library: Download shuchkin/simplexlsx library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
shuchkin / simplexlsx example snippets
use Shuchkin\SimpleXLSX;
if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
print_r( $xlsx->rows() );
} else {
echo SimpleXLSX::parseError();
}
echo SimpleXLSX::parse('book.xlsx')->toHTML();
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();
}
if ( $xlsx = SimpleXLSX::parse('book_styled.xlsx') ) {
echo $xlsx->toHTMLEx();
}
if ( $xlsx = SimpleXLSX::parse( 'xlsx/books.xlsx' ) ) {
$f = fopen('book.csv', 'wb');
// fwrite($f, chr(0xEF) . chr(0xBB) . chr(0xBF)); // UTF-8 BOM
foreach ( $xlsx->readRows() as $r ) {
fputcsv($f, $r); // fputcsv($f, $r, ';', '"', "\\", "\r\n");
}
fclose($f);
} else {
echo SimpleXLSX::parseError();
}
// Sheet numeration started 0
if ( $xlsx = SimpleXLSX::parse( 'xlsx/books.xlsx' ) ) {
print_r( $xlsx->sheetNames() );
print_r( $xlsx->sheetName( $xlsx->activeSheet ) );
}
$xlsx = SimpleXLSX::parse('book.xlsx');
print_r( $xlsx->rowsEx() );
$xlsx = SimpleXLSX::parse('book.xlsx');
// Sheet numeration started 0, we select second worksheet
foreach( $xlsx->rows(1) as $r ) {
// ...
}
$xlsx = SimpleXLSX::parse('book.xlsx');
echo 'Sheet Name 2 = '.$xlsx->sheetName(1);
if ( $xlsx = SimpleXLSX::parse('https://www.example.com/example.xlsx' ) ) {
$dim = $xlsx->dimension(1); // don't trust dimension extracted from xml
$num_cols = $dim[0];
$num_rows = $dim[1];
echo $xlsx->sheetName(1).':'.$num_cols.'x'.$num_rows;
} else {
echo SimpleXLSX::parseError();
}
// For instance $data is a data from database or cache
if ( $xlsx = SimpleXLSX::parseData( $data ) ) {
print_r( $xlsx->rows() );
} else {
echo SimpleXLSX::parseError();
}
echo $xlsx->getCell(0, 'B2'); // The Hobbit
// default SimpleXLSX datetime format is YYYY-MM-DD HH:MM:SS (ISO, MySQL)
echo $xlsx->getCell(0,'C2'); // 2016-04-12 13:41:00
// custom datetime format
$xlsx->setDateTimeFormat('d.m.Y H:i');
echo $xlsx->getCell(0,'C2'); // 12.04.2016 13:41
// unixstamp
$xlsx->setDateTimeFormat('U');
$ts = $xlsx->getCell(0,'C2'); // 1460468460
echo gmdate('Y-m-d', $ts); // 2016-04-12
echo gmdate('H:i:s', $ts); // 13:41:00
// raw excel value
$xlsx->setDateTimeFormat( NULL ); // returns as excel datetime
$xd = $xlsx->getCell(0,'C2'); // 42472.570138889
echo gmdate('m/d/Y', $xlsx->unixstamp( $xd )); // 04/12/2016
echo gmdate('H:i:s', $xlsx->unixstamp( $xd )); // 13:41:00
if ( $xlsx = SimpleXLSX::parse('books.xlsx')) {
// Produce array keys from the array values of 1st array element
$header_values = $rows = [];
foreach ( $xlsx->rows() as $k => $r ) {
if ( $k === 0 ) {
$header_values = $r;
continue;
}
$rows[] = array_combine( $header_values, $r );
}
print_r( $rows );
}
use Shuchkin\SimpleXLSX;
ini_set('error_reporting', E_ALL );
ini_set('display_errors', 1 );
if ( $xlsx = SimpleXLSX::parseFile('books.xlsx', true ) ) {
echo $xlsx->toHTML();
} else {
echo SimpleXLSX::parseError();
}
use SimpleXLSX;
$xlsx = new SimpleXLSX('books.xlsx'); // try...catch
if ( $xlsx->success() ) {
foreach( $xlsx->rows() as $r ) {
// ...
}
} else {
echo 'xlsx error: '.$xlsx->error();
}
// 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