PHPExcel 橫向循環輸出

在PHPExcel中,我用到了一個循環,代碼以下

for($i=4;$i<$num;$i++)
{
if($i>30)
{
$j="A".chr($i+34)."$m";
}else{
$j=chr($i+61)."$m";

}

$objPHPExcel->getActiveSheet()->setCellValue("$j","$headerRow[$i]");

}
當$i>30的時候,$j這個變量就會獲取不到,是怎麼回事呢?

 

 

這段代碼中,php

當$i 在[4, 30]區間執行的運算是$i+61,結果範圍在[65, 91];函數

當$i 在[31, +∞)區間執行的運算是$i+34,結果範圍在[65, +∞);spa

chr是php函數,用來將整數轉換成字符,65對應的ascii碼是 A,91對應的是[,我猜這裏本意是要把結果範圍控制在[65, 90]區間,這個區間的話恰好對應ascii碼的[A, Z]區間。code

基於這個假設,建議你把代碼改爲下面的樣子試試:htm

1
2
3
4
5
6
7
8
9
10
11
for ( $i =4; $i <$ num; $i ++)
{
     if  ( $i  < 30)
     {
         $j = chr ( $i  + 61). "$m" ;
     }
     else  if  ( $i  < 56)
     {
         $j = "A" . chr ( $i  + 35). "$m" ;
     }
}

附:ASCII碼對照表:http://baike.baidu.com/view/15482.htmci

相關文章
相關標籤/搜索