Documentation

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

$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
mixed

setParent()

Set AutoFilter Parent Worksheet.

public setParent( [ $pSheet : Worksheet = null ] ) : $this
Parameters
$pSheet : Worksheet = null
Return values
$this

getRange()

Get AutoFilter Range.

public getRange( ) : string
Return values
string

setRange()

Set AutoFilter Range.

public setRange( $pRange : string ) : $this
Parameters
$pRange : string

Cell range (i.e. A1:E10)

Return values
$this

getColumns()

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
Column

getColumnByOffset()

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
Column

setColumn()

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
$this

clearColumn()

Clear a specified AutoFilter Column.

public clearColumn( $pColumn : string ) : $this
Parameters
$pColumn : string

Column name (e.g. A)

Return values
$this

shiftColumn()

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
$this

filterTestInSimpleDataSet()

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
bool

filterTestInDateGroupSet()

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
bool

filterTestInCustomDataSet()

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
bool

filterTestInPeriodDateSet()

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
bool

dynamicFilterDateRange()

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
array

calculateTopTenValue()

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
mixed

showHideRows()

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
Return values
mixed

Search results