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这个变量就会获取不到,是怎么回事呢?

 

 

这段代码中,

当$i 在[4, 30]区间执行的运算是$i+61,结果范围在[65, 91];

当$i 在[31, +∞)区间执行的运算是$i+34,结果范围在[65, +∞);

chr是php函数,用来将整数转换成字符,65对应的ascii码是 A,91对应的是[,我猜这里本意是要把结果范围控制在[65, 90]区间,这个区间的话刚好对应ascii码的[A, Z]区间。

基于这个假设,建议你把代码改成下面的样子试试:

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.htm

转载于:https://www.cnblogs.com/bit5566/p/5188195.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值