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