@@ -276,35 +276,42 @@ public static function columnIndexFromString($columnAddress)
276
276
if (isset ($ indexCache [$ columnAddress ])) {
277
277
return $ indexCache [$ columnAddress ];
278
278
}
279
- // It's surprising how costly the strtoupper() and ord() calls actually are, so we use a lookup array rather than use ord()
280
- // and make it case insensitive to get rid of the strtoupper() as well. Because it's a static, there's no significant
281
- // memory overhead either
279
+ // It's surprising how costly the strtoupper() and ord() calls actually are, so we use a lookup array
280
+ // rather than use ord() and make it case insensitive to get rid of the strtoupper() as well.
281
+ // Because it's a static, there's no significant memory overhead either.
282
282
static $ columnLookup = [
283
- 'A ' => 1 , 'B ' => 2 , 'C ' => 3 , 'D ' => 4 , 'E ' => 5 , 'F ' => 6 , 'G ' => 7 , 'H ' => 8 , 'I ' => 9 , 'J ' => 10 , 'K ' => 11 , 'L ' => 12 , 'M ' => 13 ,
284
- 'N ' => 14 , 'O ' => 15 , 'P ' => 16 , 'Q ' => 17 , 'R ' => 18 , 'S ' => 19 , 'T ' => 20 , 'U ' => 21 , 'V ' => 22 , 'W ' => 23 , 'X ' => 24 , 'Y ' => 25 , 'Z ' => 26 ,
285
- 'a ' => 1 , 'b ' => 2 , 'c ' => 3 , 'd ' => 4 , 'e ' => 5 , 'f ' => 6 , 'g ' => 7 , 'h ' => 8 , 'i ' => 9 , 'j ' => 10 , 'k ' => 11 , 'l ' => 12 , 'm ' => 13 ,
286
- 'n ' => 14 , 'o ' => 15 , 'p ' => 16 , 'q ' => 17 , 'r ' => 18 , 's ' => 19 , 't ' => 20 , 'u ' => 21 , 'v ' => 22 , 'w ' => 23 , 'x ' => 24 , 'y ' => 25 , 'z ' => 26 ,
283
+ 'A ' => 1 , 'B ' => 2 , 'C ' => 3 , 'D ' => 4 , 'E ' => 5 , 'F ' => 6 , 'G ' => 7 , 'H ' => 8 , 'I ' => 9 , 'J ' => 10 ,
284
+ 'K ' => 11 , 'L ' => 12 , 'M ' => 13 , 'N ' => 14 , 'O ' => 15 , 'P ' => 16 , 'Q ' => 17 , 'R ' => 18 , 'S ' => 19 ,
285
+ 'T ' => 20 , 'U ' => 21 , 'V ' => 22 , 'W ' => 23 , 'X ' => 24 , 'Y ' => 25 , 'Z ' => 26 ,
286
+ 'a ' => 1 , 'b ' => 2 , 'c ' => 3 , 'd ' => 4 , 'e ' => 5 , 'f ' => 6 , 'g ' => 7 , 'h ' => 8 , 'i ' => 9 , 'j ' => 10 ,
287
+ 'k ' => 11 , 'l ' => 12 , 'm ' => 13 , 'n ' => 14 , 'o ' => 15 , 'p ' => 16 , 'q ' => 17 , 'r ' => 18 , 's ' => 19 ,
288
+ 't ' => 20 , 'u ' => 21 , 'v ' => 22 , 'w ' => 23 , 'x ' => 24 , 'y ' => 25 , 'z ' => 26 ,
287
289
];
288
290
289
- // We also use the language construct isset() rather than the more costly strlen() function to match the length of $columnAddress
290
- // for improved performance
291
+ // We also use the language construct isset() rather than the more costly strlen() function to match the
292
+ // length of $columnAddress for improved performance
291
293
if (isset ($ columnAddress [0 ])) {
292
294
if (!isset ($ columnAddress [1 ])) {
293
295
$ indexCache [$ columnAddress ] = $ columnLookup [$ columnAddress ];
294
296
295
297
return $ indexCache [$ columnAddress ];
296
298
} elseif (!isset ($ columnAddress [2 ])) {
297
- $ indexCache [$ columnAddress ] = $ columnLookup [$ columnAddress [0 ]] * 26 + $ columnLookup [$ columnAddress [1 ]];
299
+ $ indexCache [$ columnAddress ] = $ columnLookup [$ columnAddress [0 ]] * 26
300
+ + $ columnLookup [$ columnAddress [1 ]];
298
301
299
302
return $ indexCache [$ columnAddress ];
300
303
} elseif (!isset ($ columnAddress [3 ])) {
301
- $ indexCache [$ columnAddress ] = $ columnLookup [$ columnAddress [0 ]] * 676 + $ columnLookup [$ columnAddress [1 ]] * 26 + $ columnLookup [$ columnAddress [2 ]];
304
+ $ indexCache [$ columnAddress ] = $ columnLookup [$ columnAddress [0 ]] * 676
305
+ + $ columnLookup [$ columnAddress [1 ]] * 26
306
+ + $ columnLookup [$ columnAddress [2 ]];
302
307
303
308
return $ indexCache [$ columnAddress ];
304
309
}
305
310
}
306
311
307
- throw new Exception ('Column string index can not be ' . ((isset ($ columnAddress [0 ])) ? 'longer than 3 characters ' : 'empty ' ));
312
+ throw new Exception (
313
+ 'Column string index can not be ' . ((isset ($ columnAddress [0 ])) ? 'longer than 3 characters ' : 'empty ' )
314
+ );
308
315
}
309
316
310
317
/**
@@ -320,11 +327,11 @@ public static function stringFromColumnIndex($columnIndex)
320
327
321
328
if (!isset ($ indexCache [$ columnIndex ])) {
322
329
$ indexValue = $ columnIndex ;
323
- $ base26 = null ;
330
+ $ base26 = '' ;
324
331
do {
325
332
$ characterValue = ($ indexValue % 26 ) ?: 26 ;
326
333
$ indexValue = ($ indexValue - $ characterValue ) / 26 ;
327
- $ base26 = chr ($ characterValue + 64 ) . ( $ base26 ?: '' ) ;
334
+ $ base26 = chr ($ characterValue + 64 ) . $ base26 ;
328
335
} while ($ indexValue > 0 );
329
336
$ indexCache [$ columnIndex ] = $ base26 ;
330
337
}
0 commit comments