2016-02-18 55 views
4

假設我想爲第2行設置摺疊和擴展,最多4個爲一個組,最多8個爲第2個組。這意味着當用戶想要點擊擴展+圖標的組1時,從2到4的行應該是可見的,並且對於組2從8到12的行應該是可見的。貝婁是單行的代碼。PHPExcel如何設置摺疊和擴大行組?

$sheet->getRowDimension(1)->setOutlineLevel(1); 

$sheet->getRowDimension(1)->setVisible(false); 

$sheet->getRowDimension(1)->setCollapsed(true); 

而另一個問題是,我們可以定義展開圖標,而不是+圖標我們自己? 有些東西like this

回答

7

您可以通過爲每行設置一個行列(或列)範圍來設置輪廓組;您可以通過設置組級別參數來嵌套輪廓組。

// Set outline levels 
for ($row = 2; $row <= 10; ++$row) { 
    $objPHPExcel->getActiveSheet() 
     ->getRowDimension($row) 
      ->setOutlineLevel(1) 
      ->setVisible(false) 
      ->setCollapsed(true); 
} 

for ($row = 4; $row <= 9; ++$row) { 
    $objPHPExcel->getActiveSheet() 
     ->getRowDimension($row) 
      ->setOutlineLevel(2) 
      ->setVisible(false) 
      ->setCollapsed(true); 
} 
for ($row = 6; $row <= 8; ++$row) { 
    $objPHPExcel->getActiveSheet() 
     ->getRowDimension($row) 
      ->setOutlineLevel(3) 
      ->setVisible(false) 
      ->setCollapsed(true); 
} 
+0

那麼如何展開和摺疊圖標,我們可以定義我們的自定義圖標嗎? – jones

+1

我不知道該圖標可以在MS Excel本身進行更改(如果您知道它可以,也許您可​​以指出一些參考資料解釋如何);它肯定不能在PHPExcel –

+1

中更改,謝謝Mark。這個例子讓我意識到你設置的級別是很重要的。較小的水平應該在較大的水平之前設置。否則摺疊將不起作用。 –