source: sourcecode/application/libraries/PHPExcel/Worksheet/RowIterator.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 3.3 KB
Line 
1<?php
2/**
3 * PHPExcel
4 *
5 * Copyright (c) 2006 - 2014 PHPExcel
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20 *
21 * @category   PHPExcel
22 * @package     PHPExcel_Worksheet
23 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24 * @license     http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt   LGPL
25 * @version     1.8.0, 2014-03-02
26 */
27
28
29/**
30 * PHPExcel_Worksheet_RowIterator
31 *
32 * Used to iterate rows in a PHPExcel_Worksheet
33 *
34 * @category   PHPExcel
35 * @package     PHPExcel_Worksheet
36 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
37 */
38class PHPExcel_Worksheet_RowIterator implements Iterator
39{
40        /**
41         * PHPExcel_Worksheet to iterate
42         *
43         * @var PHPExcel_Worksheet
44         */
45        private $_subject;
46
47        /**
48         * Current iterator position
49         *
50         * @var int
51         */
52        private $_position = 1;
53
54        /**
55         * Start position
56         *
57         * @var int
58         */
59        private $_startRow = 1;
60
61
62        /**
63         * Create a new row iterator
64         *
65         * @param       PHPExcel_Worksheet      $subject        The worksheet to iterate over
66         * @param       integer                         $startRow       The row number at which to start iterating
67         */
68        public function __construct(PHPExcel_Worksheet $subject = null, $startRow = 1) {
69                // Set subject
70                $this->_subject = $subject;
71                $this->resetStart($startRow);
72        }
73
74        /**
75         * Destructor
76         */
77        public function __destruct() {
78                unset($this->_subject);
79        }
80
81        /**
82         * (Re)Set the start row and the current row pointer
83         *
84         * @param integer       $startRow       The row number at which to start iterating
85         */
86        public function resetStart($startRow = 1) {
87                $this->_startRow = $startRow;
88                $this->seek($startRow);
89        }
90
91        /**
92         * Set the row pointer to the selected row
93         *
94         * @param integer       $row    The row number to set the current pointer at
95         */
96        public function seek($row = 1) {
97                $this->_position = $row;
98        }
99
100        /**
101         * Rewind the iterator to the starting row
102         */
103        public function rewind() {
104                $this->_position = $this->_startRow;
105        }
106
107        /**
108         * Return the current row in this worksheet
109         *
110         * @return PHPExcel_Worksheet_Row
111         */
112        public function current() {
113                return new PHPExcel_Worksheet_Row($this->_subject, $this->_position);
114        }
115
116        /**
117         * Return the current iterator key
118         *
119         * @return int
120         */
121        public function key() {
122                return $this->_position;
123        }
124
125        /**
126         * Set the iterator to its next value
127         */
128        public function next() {
129                ++$this->_position;
130        }
131
132        /**
133         * Set the iterator to its previous value
134         */
135        public function prev() {
136                if ($this->_position > 1)
137                        --$this->_position;
138        }
139
140        /**
141         * Indicate if more rows exist in the worksheet
142         *
143         * @return boolean
144         */
145        public function valid() {
146                return $this->_position <= $this->_subject->getHighestRow();
147        }
148}
Note: See TracBrowser for help on using the repository browser.