<?php function letterToColumnNumber(string $letters, int $indexStart = 0): int { static $ordA = ord('A'); $length = strlen($letters); $number = 0; $pow = 1; for ($i = $length - 1; $i >= 0; $i--) { // calculate the value of each letter and add to the total $number += (ord($letters[$i]) - $ordA + 1) * $pow; $pow *= 26; } return $number - (1 - $indexStart); } function rangeStringToRangeArray(string $range, int $indexStart = 0): array { // Parse Excel range expression if (sscanf($range, '%[A-Z]%d:%[A-Z]%d', $startCol, $startRow, $endCol, $endRow) != 4) { throw new Exception('Invalid range expression'); } return [ [ letterToColumnNumber($startCol, $indexStart), $startRow - (1 - $indexStart) ], [ letterToColumnNumber($endCol, $indexStart), $endRow - (1 - $indexStart) ] ]; } echo json_encode(rangeStringToRangeArray('A1:B2')); // returns [[0,0],[1,1]] echo json_encode(rangeStringToRangeArray('A1:B2', 1)); // returns [[1,1],[2,2]]
You have javascript disabled. You will not be able to edit any code.