Source for file PHPTemp.php
Documentation is available at PHPTemp.php
* Copyright (c) 2006 - 2011 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
* @package PHPExcel_CachedObjectStorage
* @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version 1.7.6, 2011-02-27
* PHPExcel_CachedObjectStorage_PHPTemp
* @package PHPExcel_CachedObjectStorage
* @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel)
private $_fileHandle = null;
private $_memoryCacheSize = null;
private function _storeData() {
fseek($this->_fileHandle,0,SEEK_END);
$offset = ftell($this->_fileHandle);
'sz' => ftell($this->_fileHandle) - $offset
} // function _storeData()
* Add or Update a cell in cache identified by coordinate address
* @param string $pCoord Coordinate address of the cell to update
* @param PHPExcel_Cell $cell Cell to update
public function addCacheData($pCoord, PHPExcel_Cell $cell) {
} // function addCacheData()
* Get cell at a specific coordinate
* @param string $pCoord Coordinate of the cell
* @return PHPExcel_Cell Cell that was found, or null if not found
// Check if the entry that has been requested actually exists
// Return null if requested entry doesn't exist in cache
// Set current entry to the requested entry
// Re-attach the parent worksheet
// Return requested entry
} // function getCacheData()
* Clone the cell collection
// Open a new stream for the cell cache data
$newFileHandle = fopen('php://temp/maxmemory:'. $this->_memoryCacheSize,'a+');
// Copy the existing cell cache data to the new stream
fseek($this->_fileHandle,0);
while (!feof($this->_fileHandle)) {
fwrite($newFileHandle,fread($this->_fileHandle, 1024));
$this->_fileHandle = $newFileHandle;
} // function copyCellCollection()
// detach ourself from the worksheet, so that it can then delete this object successfully
// Close down the php://temp file
} // function unsetWorksheetCells()
public function __construct(PHPExcel_Worksheet $parent, $memoryCacheSize = '1MB') {
$this->_memoryCacheSize = (isset ($arguments['memoryCacheSize'])) ? $arguments['memoryCacheSize'] : '1MB';
$this->_fileHandle = fopen('php://temp/maxmemory:'. $this->_memoryCacheSize,'a+');
} // function __construct()
if (!is_null($this->_fileHandle)) {
$this->_fileHandle = null;
} // function __destruct()
|