setActiveSheetIndex 无法正常工作

setActiveSheetIndex not working properly

我正在使用 PHPExcel 导出 xls,需要 2 个工作sheet。当我打开生成的 xls 文件时,它直接打开第二个作品sheet,即使我已经在生成第一个作品的代码中声明sheet:

$objPHPExcel->setActiveSheetIndex(0) 

这发生在我在生成第二个作品的代码中添加了以下行之后sheet。

$objPHPExcel->getSheet(1)->getStyle('A1:E1')->getFont()->setBold(true);

    $objPHPExcel->getSheet(1)->getColumnDimension('A')->setWidth(15);
    $objPHPExcel->getSheet(1)->getRowDimension(1)->setRowHeight(40);
    $objPHPExcel->getSheet(1)->getStyle('A:F')->getAlignment()->setWrapText(true); 
    $objPHPExcel->getSheet(1)->getColumnDimension('B')->setWidth(40);
    $objPHPExcel->getSheet(1)->getStyle('B')->getAlignment()->setWrapText(true); 
    $objPHPExcel->getSheet(1)->getColumnDimension('C')->setWidth(15);
    $objPHPExcel->getSheet(1)->getColumnDimension('D')->setWidth(15);
    $objPHPExcel->getSheet(1)->getColumnDimension('E')->setWidth(15);
    $objPHPExcel->getSheet(1)->getColumnDimension('E')->setAutoSize(true);

    $objPHPExcel->getSheet(1)->getPageMargins(1)->setTop(1);
    $objPHPExcel->getSheet(1)->getPageMargins(1)->setRight(0.75);
    $objPHPExcel->getSheet(1)->getPageMargins(1)->setLeft(0.75);
    $objPHPExcel->getSheet(1)->getPageMargins(1)->setBottom(1);

    $objPHPExcel->getSheet(1)->getStyle('A1:E1')->getFill()
                    ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
                    ->getStartColor()->setRGB('4EE900');

如果我注释一些代码行,(如图所示)活动的 sheet 索引工作正常。

所以,如果我删除这些行,它就可以正常工作。任何想法如何解决这个问题以保持第一个工作sheet作为活动工作sheet?

创建新作品sheet 自动将其设置为活动 sheet。

除非你使用$objPHPExcel->setActiveSheetIndex(0);创建你的第二个作品sheet之后,那么第二个sheet 将是您的活动 sheet.

并且您始终可以在保存之前手动设置活动 sheet 使用

$objPHPExcel->setActiveSheetIndex(0);