fork download
  1. <?php
  2.  
  3. print_r(generateExcelColumns(2,30));
  4. function generateExcelColumns($start = 1, $end = 28) {
  5. if ($start < 1) $start = 1;
  6. if ($end < $start) $end = $start;
  7.  
  8. $columns = [];
  9.  
  10. for ($i = $start; $i <= $end; $i++) {
  11. $column = '';
  12. $num = $i;
  13.  
  14. // 將數字轉成 26 進位字母(類似 base-26,但 Excel 沒有 0,所以 A=1)
  15. while ($num > 0) {
  16. $remainder = ($num - 1) % 26; // 關鍵:減 1 讓餘數從 0~25 對應 A~Z
  17. $column = chr(65 + $remainder) . $column;
  18. $num = intval(($num - 1) / 26); // 繼續處理更高位
  19. }
  20.  
  21. $columns[] = $column;
  22. }
  23.  
  24. return $columns;
  25. }
Success #stdin #stdout 0.02s 25728KB
stdin
1
2
10
42
11
stdout
Array
(
    [0] => B
    [1] => C
    [2] => D
    [3] => E
    [4] => F
    [5] => G
    [6] => H
    [7] => I
    [8] => J
    [9] => K
    [10] => L
    [11] => M
    [12] => N
    [13] => O
    [14] => P
    [15] => Q
    [16] => R
    [17] => S
    [18] => T
    [19] => U
    [20] => V
    [21] => W
    [22] => X
    [23] => Y
    [24] => Z
    [25] => AA
    [26] => AB
    [27] => AC
    [28] => AD
)