<?php /** * PHPExcel * * Copyright (c) 2006 - 2014 PHPExcel * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 1.8.0, 2014-03-02 */ /** * PHPExcel_Worksheet_SheetView * * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) */ class PHPExcel_Worksheet_SheetView { /* Sheet View types */ const SHEETVIEW_NORMAL = 'normal'; const SHEETVIEW_PAGE_LAYOUT = 'pageLayout'; const SHEETVIEW_PAGE_BREAK_PREVIEW = 'pageBreakPreview'; private static $_sheetViewTypes = array( self::SHEETVIEW_NORMAL, self::SHEETVIEW_PAGE_LAYOUT, self::SHEETVIEW_PAGE_BREAK_PREVIEW, ); /** * ZoomScale * * Valid values range from 10 to 400. * * @var int */ private $_zoomScale = 100; /** * ZoomScaleNormal * * Valid values range from 10 to 400. * * @var int */ private $_zoomScaleNormal = 100; /** * View * * Valid values range from 10 to 400. * * @var string */ private $_sheetviewType = self::SHEETVIEW_NORMAL; /** * Create a new PHPExcel_Worksheet_SheetView */ public function __construct() { } /** * Get ZoomScale * * @return int */ public function getZoomScale() { return $this->_zoomScale; } /** * Set ZoomScale * * Valid values range from 10 to 400. * * @param int $pValue * @throws PHPExcel_Exception * @return PHPExcel_Worksheet_SheetView */ public function setZoomScale($pValue = 100) { // Microsoft Office Excel 2007 only allows setting a scale between 10 and 400 via the user interface, // but it is apparently still able to handle any scale >= 1 if (($pValue >= 1) || is_null($pValue)) { $this->_zoomScale = $pValue; } else { throw new PHPExcel_Exception("Scale must be greater than or equal to 1."); } return $this; } /** * Get ZoomScaleNormal * * @return int */ public function getZoomScaleNormal() { return $this->_zoomScaleNormal; } /** * Set ZoomScale * * Valid values range from 10 to 400. * * @param int $pValue * @throws PHPExcel_Exception * @return PHPExcel_Worksheet_SheetView */ public function setZoomScaleNormal($pValue = 100) { if (($pValue >= 1) || is_null($pValue)) { $this->_zoomScaleNormal = $pValue; } else { throw new PHPExcel_Exception("Scale must be greater than or equal to 1."); } return $this; } /** * Get View * * @return string */ public function getView() { return $this->_sheetviewType; } /** * Set View * * Valid values are * 'normal' self::SHEETVIEW_NORMAL * 'pageLayout' self::SHEETVIEW_PAGE_LAYOUT * 'pageBreakPreview' self::SHEETVIEW_PAGE_BREAK_PREVIEW * * @param string $pValue * @throws PHPExcel_Exception * @return PHPExcel_Worksheet_SheetView */ public function setView($pValue = NULL) { // MS Excel 2007 allows setting the view to 'normal', 'pageLayout' or 'pageBreakPreview' // via the user interface if ($pValue === NULL) $pValue = self::SHEETVIEW_NORMAL; if (in_array($pValue, self::$_sheetViewTypes)) { $this->_sheetviewType = $pValue; } else { throw new PHPExcel_Exception("Invalid sheetview layout type."); } return $this; } /** * Implement PHP __clone to create a deep clone, not just a shallow copy. */ public function __clone() { $vars = get_object_vars($this); foreach ($vars as $key => $value) { if (is_object($value)) { $this->$key = clone $value; } else { $this->$key = $value; } } } }