处理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++;
}