PHPExcel是一款非常强大的PHP操作EXCEL库,使用PHPExcel可以帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。

最近在使用PHPExcel循环生成多个sheet时,遇到You tried to set a sheet active by the out of bounds index: 1. The actual number of sheets is 1错误,特将解决办法记录如下:

产生这个错误的原因是PHPExcel会自动创建第一个sheet,因此我们可以直接创建一个PHPEXCEL对象并且操作第一个sheet:


$excel = new PHPExcel();
$excel->setactivesheetindex(0);

因此我最开始的循环代码就是直接用变量循环:


$excel = new PHPExcel();
for($i=0;$i<5;$i++){
$excel->setactivesheetindex($i);
}

这样就会报上面的错误,因为之后的sheet无法自动创建,而需要我们通过代码创建,因此我们要判断循环变量是否大于0,如果大于0那么要先createSheet():


$excel = new PHPExcel();
for($i=0;$i<5;$i++){
if($i>0){
$excel->createSheet();
}
$excel->setactivesheetindex($i);
}