# Handling imported results
# Getting all sheets and rows
After you have loaded a file, you can ->get()
the results like so:
Excel::load('file.xls', function($reader) {
})->get();
or
Excel::load('file.xls', function($reader) {
// Getting all results
$results = $reader->get();
// ->all() is a wrapper for ->get() and will work the same
$results = $reader->all();
});
The
->get()
and->all()
methods will return a sheet or row collection, depending on the amount of sheets the file has. You can disable this feature inside theimport.php
config by setting'force_sheets_collection'
totrue
. When set to true it will always return a sheet collection.
# Table heading as attributes
By default the first row of the Excel file will be used as attributes.
// Get the firstname
$row->firstname;
Note: by default these attributes will be converted to a slug. You can change the default inside the config
excel::import.heading
. Available options are:true|false|slugged|ascii|numeric|hashed|trans|original
True and slugged will be converted to ASCII as well when
excel::import.to_ascii
is set to true. You can change the default separator as well inside the config.
# Collections
Sheets, rows and cells are collections, this means after doing a ->get()
you can use all default collection methods.
// E.g. group the results
$reader->get()->groupBy('firstname');
# Getting the first sheet or row
To get the first sheet or row, you can utilise ->first()
.
$reader->first();
Note: depending on the config
'force_sheets_collection'
it will return the first row or sheet.
# Workbook and sheet title
It's possible to retrieve the workbook and sheet title with ->getTitle()
.
// Get workbook title
$workbookTitle = $reader->getTitle();
foreach($reader as $sheet)
{
// get sheet title
$sheetTitle = $sheet->getTitle();
}
# Limiting the file reading
# Taking rows
When you only want to return the first x rows of a sheet, you can use ->takeRows()
or ->limitRows()
.
// You can either use ->takeRows()
$reader->takeRows(10);
// Or ->limitRows()
$reader->limitRows(10);
# Skipping rows
When you want to skip a certain amount of rows you can use ->skipRows()
or ->limitRows(false, 10)
// Skip 10 results
$reader->skipRows(10);
// Skip 10 results with limit, but return all other rows
$reader->limitRows(false, 10);
// Skip and take
$reader->skipRows(10)->takeRows(10);
# Taking columns
When you only want to return the first x columns of a sheet, you can use ->takeColumns()
or ->limitColumns()
.
// You can either use ->takeColumns()
$reader->takeColumns(10);
// Or ->limitColumns()
$reader->limitColumns(10);
# Skipping columns
When you want to skip a certain amount of columns you can use ->skipColumns()
or ->limitColumns(false, 10)
// Skip 10 results
$reader->skipColumns(10);
// Skip 10 results with limit, but return all other columns
$reader->limitColumns(false, 10);
// Skip and take
$reader->skipColumns(10)->takeColumns(10);
# Result mutators
When you want to get an array instead of an object, you can use ->toArray()
.
$reader->toArray();
When you want an object, you can alternativly (instead of get() or all()) use ->toObject()
.
$reader->toObject();
# Displaying results
You can dump the results to a readable output by using ->dump()
or ->dd()
.
// Dump the results
$reader->dump();
// Dump results and die
$reader->dd();
# Iterating the results
You can iterate the results by using ->each()
.
// Loop through all sheets
$reader->each(function($sheet) {
// Loop through all rows
$sheet->each(function($row) {
});
});
Alternatively you can also
foreach
the results.