处理excel表的列

 

之前设置excel表头,都是用下面的代码,由于列数都在26之内,所以没有发现什么问题。

//======= 设置表头 ==============
$span = ord("A");
foreach ($header as $value) {
$column = chr($span);
$objActSheet->setCellValue($column . '1', $value);
$span += 1;
}

这种方式是先把字母转换成ASCII码,加1算出下一个字母的ASCII码,再转换成字符。可是,当字母是【Z】时,计算下一个字母时就会出错了。

而excel表的列名如下图:

 

经过我尝试了一下,发现如下代码可以解决问题:

所以,代码需要改成下图这样:

//======= 设置表头 ==============
$column = 'A';
foreach ($header as $value) {
$objActSheet->setCellValue($column . '1', $value);
$column++;
}

 

posted @ 2017-09-29 15:37  芒果提子  阅读(165)  评论(0编辑  收藏  举报