Если вы создаёте отчёты в Excel на PHP, то при отображении данных можете уйти на листе далеко вправо. У Excel колонки именуются буквами, например A, B, С. Когда алфавит кончается, количество букв увеличивается: AA, AB, AC. Если и этого количества не хватает, то Excel нумерует колонки тремя буквами.
Если вы работаете с COM-объектом «Excel.Application», то для обращения к таким буквенным колонкам по их порядковому номеру можно использовать такую простую функцию:
function ExcelColumnByNum($num) { $num = abs(intval($num)); if ($num < 1) { $num = 1; } $num1 = ($num - 1) % 26; $letter = chr(65 + $num1); $num2 = intval(($num - 1) / 26); if ($num2 > 0) { return ExcelColumnByNum($num2) . $letter; } else { return $letter; } }
Если вы используете распространённый компонент PHPExcel, который не требует инициализации COM, то там есть для этого специальная функция:
$colString = PHPExcel_Cell::stringFromColumnIndex($colNumber);