AutoFilter
Table of Contents
| $workSheet | Autofilter Worksheet. | Worksheet |
|---|---|---|
| $range | Autofilter Range. | string |
| $columns | Autofilter Column Ruleset. | \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column[] |
| $fromReplace | Search/Replace arrays to convert Excel wildcard syntax to a regexp syntax for preg_matching. | array |
| $toReplace | ||
| __construct() | Create a new AutoFilter. | mixed |
| getParent() | Get AutoFilter Parent Worksheet. | Worksheet |
| setParent() | Set AutoFilter Parent Worksheet. | $this |
| getRange() | Get AutoFilter Range. | string |
| setRange() | Set AutoFilter Range. | $this |
| getColumns() | Get all AutoFilter Columns. | \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column[] |
| testColumnInRange() | Validate that the specified column is in the AutoFilter range. | int |
| getColumnOffset() | Get a specified AutoFilter Column Offset within the defined AutoFilter range. | int |
| getColumn() | Get a specified AutoFilter Column. | Column |
| getColumnByOffset() | Get a specified AutoFilter Column by it's offset. | Column |
| setColumn() | Set AutoFilter. | $this |
| clearColumn() | Clear a specified AutoFilter Column. | $this |
| shiftColumn() | Shift an AutoFilter Column Rule to a different column. | $this |
| filterTestInSimpleDataSet() | Test if cell value is in the defined set of values. | bool |
| filterTestInDateGroupSet() | Test if cell value is in the defined set of Excel date values. | bool |
| filterTestInCustomDataSet() | Test if cell value is within a set of values defined by a ruleset. | bool |
| filterTestInPeriodDateSet() | Test if cell date value is matches a set of values defined by a set of months. | bool |
| dynamicFilterDateRange() | Convert a dynamic rule daterange to a custom filter range expression for ease of calculation. | array |
| calculateTopTenValue() | mixed | |
| showHideRows() | Apply the AutoFilter rules to the AutoFilter Range. | $this |
| __clone() | Implement PHP __clone to create a deep clone, not just a shallow copy. | mixed |
| __toString() | toString method replicates previous behavior by returning the range if object is referenced as a property of its parent. | mixed |
Properties
$workSheet
Autofilter Worksheet.
private
Worksheet
$workSheet
$range
Autofilter Range.
private
string
$range
= ''
$columns
Autofilter Column Ruleset.
private
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column[]
$columns
= []
$fromReplace
Search/Replace arrays to convert Excel wildcard syntax to a regexp syntax for preg_matching.
private
static array
$fromReplace
= ['\\*', '\\?', '~~', '~.*', '~.?']
$toReplace
private
static mixed
$toReplace
= ['.*', '.', '~', '\\*', '\\?']
Methods
__construct()
Create a new AutoFilter.
public
__construct(
[ $pRange :
string
= '' ]
[, $pSheet :
Worksheet
= null ]
)
: mixed
Parameters
- $pRange : string = ''
Cell range (i.e. A1:E10)
- $pSheet : Worksheet = null
Return values
mixedgetParent()
Get AutoFilter Parent Worksheet.
public
getParent(
)
: Worksheet
Return values
WorksheetsetParent()
Set AutoFilter Parent Worksheet.
public
setParent(
[ $pSheet :
Worksheet
= null ]
)
: $this
Parameters
- $pSheet : Worksheet = null
Return values
$thisgetRange()
Get AutoFilter Range.
public
getRange(
)
: string
Return values
stringsetRange()
Set AutoFilter Range.
public
setRange(
$pRange :
string
)
: $this
Parameters
- $pRange : string
Cell range (i.e. A1:E10)
Return values
$thisgetColumns()
Get all AutoFilter Columns.
public
getColumns(
)
: \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column[]
Return values
\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column[]testColumnInRange()
Validate that the specified column is in the AutoFilter range.
public
testColumnInRange(
$column :
string
)
: int
Parameters
- $column : string
Column name (e.g. A)
Return values
int —The column offset within the autofilter range
getColumnOffset()
Get a specified AutoFilter Column Offset within the defined AutoFilter range.
public
getColumnOffset(
$pColumn :
string
)
: int
Parameters
- $pColumn : string
Column name (e.g. A)
Return values
int —The offset of the specified column within the autofilter range
getColumn()
Get a specified AutoFilter Column.
public
getColumn(
$pColumn :
string
)
: Column
Parameters
- $pColumn : string
Column name (e.g. A)
Return values
ColumngetColumnByOffset()
Get a specified AutoFilter Column by it's offset.
public
getColumnByOffset(
$pColumnOffset :
int
)
: Column
Parameters
- $pColumnOffset : int
Column offset within range (starting from 0)
Return values
ColumnsetColumn()
Set AutoFilter.
public
setColumn(
$pColumn :
Column|string
)
: $this
Parameters
- $pColumn : Column|string
A simple string containing a Column ID like 'A' is permitted
Return values
$thisclearColumn()
Clear a specified AutoFilter Column.
public
clearColumn(
$pColumn :
string
)
: $this
Parameters
- $pColumn : string
Column name (e.g. A)
Return values
$thisshiftColumn()
Shift an AutoFilter Column Rule to a different column.
public
shiftColumn(
$fromColumn :
string
, $toColumn :
string
)
: $this
Note: This method bypasses validation of the destination column to ensure it is within this AutoFilter range. Nor does it verify whether any column rule already exists at $toColumn, but will simply override any existing value. Use with caution.
Parameters
- $fromColumn : string
Column name (e.g. A)
- $toColumn : string
Column name (e.g. B)
Return values
$thisfilterTestInSimpleDataSet()
Test if cell value is in the defined set of values.
private
static filterTestInSimpleDataSet(
$cellValue :
mixed
, $dataSet :
array
)
: bool
Parameters
- $cellValue : mixed
- $dataSet : array
Return values
boolfilterTestInDateGroupSet()
Test if cell value is in the defined set of Excel date values.
private
static filterTestInDateGroupSet(
$cellValue :
mixed
, $dataSet :
array
)
: bool
Parameters
- $cellValue : mixed
- $dataSet : array
Return values
boolfilterTestInCustomDataSet()
Test if cell value is within a set of values defined by a ruleset.
private
static filterTestInCustomDataSet(
$cellValue :
mixed
, $ruleSet :
array
)
: bool
Parameters
- $cellValue : mixed
- $ruleSet : array
Return values
boolfilterTestInPeriodDateSet()
Test if cell date value is matches a set of values defined by a set of months.
private
static filterTestInPeriodDateSet(
$cellValue :
mixed
, $monthSet :
array
)
: bool
Parameters
- $cellValue : mixed
- $monthSet : array
Return values
booldynamicFilterDateRange()
Convert a dynamic rule daterange to a custom filter range expression for ease of calculation.
private
dynamicFilterDateRange(
$dynamicRuleType :
string
, &$filterColumn :
Column
)
: array
Parameters
- $dynamicRuleType : string
- $filterColumn : Column
Return values
arraycalculateTopTenValue()
private
calculateTopTenValue(
$columnID :
mixed
, $startRow :
mixed
, $endRow :
mixed
, $ruleType :
mixed
, $ruleValue :
mixed
)
: mixed
Parameters
- $columnID : mixed
- $startRow : mixed
- $endRow : mixed
- $ruleType : mixed
- $ruleValue : mixed
Return values
mixedshowHideRows()
Apply the AutoFilter rules to the AutoFilter Range.
public
showHideRows(
)
: $this
Return values
$this__clone()
Implement PHP __clone to create a deep clone, not just a shallow copy.
public
__clone(
)
: mixed
Return values
mixed__toString()
toString method replicates previous behavior by returning the range if object is referenced as a property of its parent.
public
__toString(
)
: mixed