最新服务器上的版本,以后用这个
wangzhenxin
2023-11-19 bc164b8bdbfbdf1d8229a5ced6b08d7cb8db7361
commit | author | age
2207d6 1 # PHPExcel AutoFilter Reference 
W 2
3
4 ## Executing an AutoFilter
5
6 When an autofilter is applied in MS Excel, it sets the row hidden/visible flags for each row of the autofilter area based on the selected criteria, so that only those rows that match the filter criteria are displayed.
7
8 PHPExcel will not execute the equivalent function automatically when you set or change a filter expression, but only when the file is saved.
9
10 ### Applying the Filter
11
12 If you wish to execute your filter from within a script, you need to do this manually. You can do this using the autofilters showHideRows() method.
13
14 ```php
15 $autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter();
16 $autoFilter->showHideRows();
17 ```
18
19 This will set all rows that match the filter criteria to visible, while hiding all other rows within the autofilter area.
20
21 ### Displaying Filtered Rows
22
23 Simply looping through the rows in an autofilter area will still access ever row, whether it matches the filter criteria or not. To selectively access only the filtered rows, you need to test each row’s visibility settings.
24
25 ```php
26 foreach ($objPHPExcel->getActiveSheet()->getRowIterator() as $row) {
27     if ($objPHPExcel->getActiveSheet()
28         ->getRowDimension($row->getRowIndex())->getVisible()) {
29         echo '    Row number - ' , $row->getRowIndex() , ' ';
30         echo $objPHPExcel->getActiveSheet()
31             ->getCell(
32                 'C'.$row->getRowIndex()
33             )
34             ->getValue(), ' ';
35         echo $objPHPExcel->getActiveSheet()
36             ->getCell(
37                 'D'.$row->getRowIndex()
38             )->getFormattedValue(), ' ';
39         echo EOL;
40     }
41 }
42 ```