setActiveSheetIndex无法正常工作

时间:2015-05-11 12:30:51

标签: php phpexcel

我使用PHPExcel使用2个工作表创建导出xls。当我打开生成的xls文件时,它会直接打开第二个工作表,即使我已在生成第一个工作表的代码中声明:

$objPHPExcel->setActiveSheetIndex(0) 

这是在我在生成第二个工作表的代码中添加以下行之后发生的。

$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');

如果我评论一些代码行,(如图所示),活动工作表索引工作正常。

enter image description here

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

1 个答案:

答案 0 :(得分:4)

创建新工作表会自动将其设置为活动工作表。

除非您在 之后使用$objPHPExcel->setActiveSheetIndex(0); 创建第二张工作表,否则第二张工作表将成为您的有效工作表。

您可以随时使用

手动设置活动工作表
$objPHPExcel->setActiveSheetIndex(0);