之前设置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++;}