Доброго времени суток. Есть некоторый код, который формирует xls-документ с помощью PHPExcel. Кусок документа выглядит так: Из скриншота видно, что подуровни не свернуты. Поэтому, нужен код , который свернет все подуровни в документе. Можно конкретный пример, чтобы свернуть уровни 14-ой строки и уровни 15-ой строки. Ну или лучше подсказать, что поправить в самом коде, чтобы все уровни в документе были свернуты. Код группировки прилагаю. Код (PHP): // ~~~ Grouping ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $Group = 0; // First group for ($Row = 13; $Row < ($iLastRow - 1); $Row++) { $CellColor = $oSheet->getStyle("A" . $Row)->getFill()->getStartColor()->getRGB(); if ($CellColor == "333399") { if ($Group <> 0) { for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) { $oSheet->getRowDimension($RowG) ->setOutlineLevel(1) ->setVisible(false); } } $Group = $Row + 1; } } // Second group for ($Row = 13; $Row < ($iLastRow - 1); $Row++) { $CellColor = $oSheet->getStyle("A" . $Row)->getFill()->getStartColor()->getRGB(); if ($CellColor == "333399") { if ($Group <> 0) { for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) { $oSheet->getRowDimension($RowG) ->setOutlineLevel(2) ->setVisible(false); } } $Group = 0; } elseif ($CellColor == "9999FF") { if ($Group <> 0) { for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) { $oSheet->getRowDimension($RowG) ->setOutlineLevel(2) ->setVisible(false); } } $Group = $Row + 1; } } // Third group for ($Row = 13; $Row < ($iLastRow - 1); $Row++) { $CellColor = $oSheet->getStyle("A" . $Row)->getFill()->getStartColor()->getRGB(); if ($CellColor == "808080") { if ($Group <> 0) { for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) { $oSheet->getRowDimension($RowG) ->setOutlineLevel(3) ->setVisible(false); } } $Group = $Row + 1; } elseif ($CellColor == "333399") { if ($Group <> 0) { for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) { $oSheet->getRowDimension($RowG) ->setOutlineLevel(3) ->setVisible(false); } } $Group = 0; } elseif ($CellColor == "9999FF") { if ($Group <> 0) { for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) { $oSheet->getRowDimension($RowG) ->setOutlineLevel(3) ->setVisible(false); } } $Group = 0; } } $oSheet->setShowSummaryBelow(false); PS. Эксперименты с: Код (PHP): $oSheet->getRowDimension($Row)->setCollapsed(false); ни к чему не привели.