Skip to content

Commit 70f372d

Browse files
author
Mark Baker
authored
Start refactoring the Lookup and Reference functions (#1912)
* Start refactoring the Lookup and Reference functions - COLUMN(), COLUMNS(), ROW() and ROWS() - LOOKUP(), VLOOKUP() and HLOOKUP() - Refactor TRANSPOSE() and ADDRESS() functions into their own classes * Additional unit tests - LOOKUP() - TRANSPOSE() - ADDRESS()
1 parent f81ffd9 commit 70f372d

File tree

21 files changed

+1041
-375
lines changed

21 files changed

+1041
-375
lines changed

src/PhpSpreadsheet/Calculation/Calculation.php

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ class Calculation
263263
],
264264
'ADDRESS' => [
265265
'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
266-
'functionCall' => [LookupRef::class, 'cellAddress'],
266+
'functionCall' => [LookupRef\Address::class, 'cell'],
267267
'argumentCount' => '2-5',
268268
],
269269
'AGGREGATE' => [
@@ -543,13 +543,14 @@ class Calculation
543543
],
544544
'COLUMN' => [
545545
'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
546-
'functionCall' => [LookupRef::class, 'COLUMN'],
546+
'functionCall' => [LookupRef\RowColumnInformation::class, 'COLUMN'],
547547
'argumentCount' => '-1',
548+
'passCellReference' => true,
548549
'passByReference' => [true],
549550
],
550551
'COLUMNS' => [
551552
'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
552-
'functionCall' => [LookupRef::class, 'COLUMNS'],
553+
'functionCall' => [LookupRef\RowColumnInformation::class, 'COLUMNS'],
553554
'argumentCount' => '1',
554555
],
555556
'COMBIN' => [
@@ -1231,7 +1232,7 @@ class Calculation
12311232
],
12321233
'HLOOKUP' => [
12331234
'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1234-
'functionCall' => [LookupRef::class, 'HLOOKUP'],
1235+
'functionCall' => [LookupRef\HLookup::class, 'lookup'],
12351236
'argumentCount' => '3,4',
12361237
],
12371238
'HOUR' => [
@@ -1605,7 +1606,7 @@ class Calculation
16051606
],
16061607
'LOOKUP' => [
16071608
'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1608-
'functionCall' => [LookupRef::class, 'LOOKUP'],
1609+
'functionCall' => [LookupRef\Lookup::class, 'lookup'],
16091610
'argumentCount' => '2,3',
16101611
],
16111612
'LOWER' => [
@@ -2127,13 +2128,14 @@ class Calculation
21272128
],
21282129
'ROW' => [
21292130
'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
2130-
'functionCall' => [LookupRef::class, 'ROW'],
2131+
'functionCall' => [LookupRef\RowColumnInformation::class, 'ROW'],
21312132
'argumentCount' => '-1',
2133+
'passCellReference' => true,
21322134
'passByReference' => [true],
21332135
],
21342136
'ROWS' => [
21352137
'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
2136-
'functionCall' => [LookupRef::class, 'ROWS'],
2138+
'functionCall' => [LookupRef\RowColumnInformation::class, 'ROWS'],
21372139
'argumentCount' => '1',
21382140
],
21392141
'RRI' => [
@@ -2449,7 +2451,7 @@ class Calculation
24492451
],
24502452
'TRANSPOSE' => [
24512453
'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
2452-
'functionCall' => [LookupRef::class, 'TRANSPOSE'],
2454+
'functionCall' => [LookupRef\Matrix::class, 'transpose'],
24532455
'argumentCount' => '1',
24542456
],
24552457
'TREND' => [
@@ -2559,7 +2561,7 @@ class Calculation
25592561
],
25602562
'VLOOKUP' => [
25612563
'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
2562-
'functionCall' => [LookupRef::class, 'VLOOKUP'],
2564+
'functionCall' => [LookupRef\VLookup::class, 'lookup'],
25632565
'argumentCount' => '3,4',
25642566
],
25652567
'WEBSERVICE' => [

0 commit comments

Comments
 (0)