PHPExcel 横向循环输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于PHPExcel 横向循环输出的主要内容,如果未能解决你的问题,请参考以下文章

php代码片段: sendFile/videoStream/sendEmail/phpexcel/ffmpeg/zip

phpExcel 操作示例

使用 PHPExcel 循环工作表

(实用篇)PHPExcel读取Excel文件的实现代码

将片段用于横向视图和 ViewPager

处理屏幕旋转上的片段重复(带有示例代码)