Excelの列番号を取得したくてやった時のメモ。
function getColKey($target) {
for($i = 0; $i < 26; $i++){
$alphabet[] = strtoupper(chr(ord('a') + $i));
}
$one = fmod($target, 26);
$result = $alphabet[$one];
$carry = ($target - $one) / 26;
while($carry != 0) {
$one = fmod($carry - 1, 26);
$result = $alphabet[$one].$result;
$carry = ($carry - 1 - $one) / 26;
}
return $result;
}
関数に数値を渡せばその番号目の列キーが帰ってくる。
下記例。
echo getColKey(24)."\n"; echo getColKey(235)."\n"; echo getColKey(2146)."\n"; echo getColKey(13461)."\n"; ↓ Y IB CDO SWT