За последние 24 часа нас посетили 17799 программистов и 1683 робота. Сейчас ищут 977 программистов ...

[PHPExcel] Collapse rows

Тема в разделе "Прочие вопросы по PHP", создана пользователем amsuser, 16 окт 2014.

  1. amsuser

    amsuser Новичок

    С нами с:
    16 окт 2014
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток.
    Есть некоторый код, который формирует xls-документ с помощью PHPExcel. Кусок документа выглядит так:
    [​IMG]
    Из скриншота видно, что подуровни не свернуты. Поэтому, нужен код , который свернет все подуровни в документе. Можно конкретный пример, чтобы свернуть уровни 14-ой строки и уровни 15-ой строки.
    Ну или лучше подсказать, что поправить в самом коде, чтобы все уровни в документе были свернуты.
    Код группировки прилагаю.
    Код (PHP):
    1.         // ~~~ Grouping ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    2.         $Group = 0;
    3.  
    4.         // First group
    5.         for ($Row = 13; $Row < ($iLastRow - 1); $Row++) {
    6.             $CellColor = $oSheet->getStyle("A" . $Row)->getFill()->getStartColor()->getRGB();
    7.             if ($CellColor == "333399") {
    8.                 if ($Group <> 0) {
    9.                     for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) {
    10.                         $oSheet->getRowDimension($RowG)
    11.                                 ->setOutlineLevel(1)
    12.                                 ->setVisible(false);
    13.                     }
    14.                 }
    15.                 $Group = $Row + 1;
    16.             }
    17.         }
    18.  
    19.         // Second group
    20.         for ($Row = 13; $Row < ($iLastRow - 1); $Row++) {
    21.             $CellColor = $oSheet->getStyle("A" . $Row)->getFill()->getStartColor()->getRGB();
    22.             if ($CellColor == "333399") {
    23.                 if ($Group <> 0) {
    24.                     for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) {
    25.                         $oSheet->getRowDimension($RowG)
    26.                                 ->setOutlineLevel(2)
    27.                                 ->setVisible(false);
    28.                     }
    29.                 }
    30.                 $Group = 0;
    31.             } elseif ($CellColor == "9999FF") {
    32.                 if ($Group <> 0) {
    33.                     for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) {
    34.                         $oSheet->getRowDimension($RowG)
    35.                                 ->setOutlineLevel(2)
    36.                                 ->setVisible(false);
    37.                     }
    38.                 }
    39.                 $Group = $Row + 1;
    40.             }
    41.         }
    42.  
    43.         // Third group
    44.         for ($Row = 13; $Row < ($iLastRow - 1); $Row++) {
    45.             $CellColor = $oSheet->getStyle("A" . $Row)->getFill()->getStartColor()->getRGB();
    46.             if ($CellColor == "808080") {
    47.                 if ($Group <> 0) {
    48.                     for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) {
    49.                         $oSheet->getRowDimension($RowG)
    50.                                 ->setOutlineLevel(3)
    51.                                 ->setVisible(false);
    52.                     }
    53.                 }
    54.                 $Group = $Row + 1;
    55.             } elseif ($CellColor == "333399") {
    56.                 if ($Group <> 0) {
    57.                     for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) {
    58.                         $oSheet->getRowDimension($RowG)
    59.                                 ->setOutlineLevel(3)
    60.                                 ->setVisible(false);
    61.                     }
    62.                 }
    63.                 $Group = 0;
    64.             } elseif ($CellColor == "9999FF") {
    65.                 if ($Group <> 0) {
    66.                     for ($RowG = $Group; $RowG <= ($Row - 1); $RowG++) {
    67.                         $oSheet->getRowDimension($RowG)
    68.                                 ->setOutlineLevel(3)
    69.                                 ->setVisible(false);
    70.                     }
    71.                 }
    72.                 $Group = 0;
    73.             }
    74.         }
    75.  
    76.         $oSheet->setShowSummaryBelow(false);
    PS. Эксперименты с:
    Код (PHP):
    1. $oSheet->getRowDimension($Row)->setCollapsed(false); 
    ни к чему не привели.