Реализация в PHP
/**
* Получение литералы из числа
*
* Пример: 1 -> A, 11 -> K, 29 -> AC
*/
function getLetterFromNumber($num)
{
$numeric = ($num - 1) % 26;
$letter = chr(65 + $numeric);
$num2 = intval(($num - 1) / 26);
if ($num2 > 0) {
return getLetterFromNumber($num2) . $letter;
}
return $letter;
}
Реализация в JS
/**
* Получение литералы из числа
*
* Пример: 1 -> A, 11 -> K, 29 -> AC
*/
function getLetterFromNumber(num)
{
const numeric = ((num - 1) % 26);
const letter = String.fromCharCode(65 + numeric);
const num2 = parseInt((num - 1) / 26);
if (num2 > 0) {
return getLetterFromNumber(num2) + letter;
}
return letter;
}
С использованием PhpSpreadsheet (PHPExcel устаревший)
\PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex(1);
// На выходе: 'A'
Обратите внимание, что индекс 0 возвращает Z
С использованием PHPExcel
PHPExcel_Cell::stringFromColumnIndex(0); // ZERO-based!
// На выходе: 'A'
и обратно:
PHPExcel_Cell::columnIndexFromString('A');
// На выходе: 1