Merge pull request #2847 from PHPOffice/CellRange-Validation-Performance-Tweak
Minor performance tweaks
This commit is contained in:
commit
7fff764698
|
|
@ -42,10 +42,9 @@ class Validations
|
|||
public static function validateCellOrCellRange($cellRange): string
|
||||
{
|
||||
if (is_string($cellRange) || is_numeric($cellRange)) {
|
||||
// Convert a single column reference like 'A' to 'A:A'
|
||||
$cellRange = (string) preg_replace('/^([A-Z]+)$/', '${1}:${1}', (string) $cellRange);
|
||||
// Convert a single row reference like '1' to '1:1'
|
||||
$cellRange = (string) preg_replace('/^(\d+)$/', '${1}:${1}', $cellRange);
|
||||
// Convert a single column reference like 'A' to 'A:A',
|
||||
// a single row reference like '1' to '1:1'
|
||||
$cellRange = (string) preg_replace('/^([A-Z]+|\d+)$/', '${1}:${1}', (string) $cellRange);
|
||||
} elseif (is_object($cellRange) && $cellRange instanceof CellAddress) {
|
||||
$cellRange = new CellRange($cellRange, $cellRange);
|
||||
}
|
||||
|
|
@ -66,9 +65,12 @@ class Validations
|
|||
[$worksheet, $addressRange] = Worksheet::extractSheetTitle($cellRange, true);
|
||||
|
||||
// Convert Column ranges like 'A:C' to 'A1:C1048576'
|
||||
$addressRange = (string) preg_replace('/^([A-Z]+):([A-Z]+)$/', '${1}1:${2}1048576', $addressRange);
|
||||
// Convert Row ranges like '1:3' to 'A1:XFD3'
|
||||
$addressRange = (string) preg_replace('/^(\\d+):(\\d+)$/', 'A${1}:XFD${2}', $addressRange);
|
||||
// or Row ranges like '1:3' to 'A1:XFD3'
|
||||
$addressRange = (string) preg_replace(
|
||||
['/^([A-Z]+):([A-Z]+)$/i', '/^(\\d+):(\\d+)$/'],
|
||||
['${1}1:${2}1048576', 'A${1}:XFD${2}'],
|
||||
$addressRange
|
||||
);
|
||||
|
||||
return empty($worksheet) ? strtoupper($addressRange) : $worksheet . '!' . strtoupper($addressRange);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue