Simplification of codepage code, and changing private methods to protected

This commit is contained in:
Mark Baker 2013-06-23 00:18:51 +01:00
parent 4d5ad7b86e
commit 89ccb90e8d
6 changed files with 70 additions and 82 deletions

View File

@ -40,25 +40,22 @@ class CachedObjectStorage_APC extends CachedObjectStorage_CacheBase implements C
/**
* Prefix used to uniquely identify cache data for this worksheet
*
* @access private
* @var string
*/
private $_cachePrefix = null;
protected $_cachePrefix = null;
/**
* Cache timeout
*
* @access private
* @var integer
*/
private $_cacheTime = 600;
protected $_cacheTime = 600;
/**
* Store cell data in cache for the current cell object if it's "dirty",
* and the 'nullify' the current cell object
*
* @access private
* @return void
* @throws PHPExcel\Exception
*/

View File

@ -52,7 +52,7 @@ class Cell_DataType
*
* @var array
*/
private static $_errorCodes = array(
protected static $_errorCodes = array(
'#NULL!' => 0,
'#DIV/0!' => 1,
'#VALUE!' => 2,

View File

@ -67,111 +67,97 @@ class Cell_DataValidation
*
* @var string
*/
private $_formula1;
protected $_formula1 = '';
/**
* Formula 2
*
* @var string
*/
private $_formula2;
protected $_formula2 = '';
/**
* Type
*
* @var string
*/
private $_type = Cell_DataValidation::TYPE_NONE;
protected $_type = Cell_DataValidation::TYPE_NONE;
/**
* Error style
*
* @var string
*/
private $_errorStyle = Cell_DataValidation::STYLE_STOP;
protected $_errorStyle = Cell_DataValidation::STYLE_STOP;
/**
* Operator
*
* @var string
*/
private $_operator;
protected $_operator = '';
/**
* Allow Blank
*
* @var boolean
*/
private $_allowBlank;
protected $_allowBlank = false;
/**
* Show DropDown
*
* @var boolean
*/
private $_showDropDown;
protected $_showDropDown = false;
/**
* Show InputMessage
*
* @var boolean
*/
private $_showInputMessage;
protected $_showInputMessage = false;
/**
* Show ErrorMessage
*
* @var boolean
*/
private $_showErrorMessage;
protected $_showErrorMessage = false;
/**
* Error title
*
* @var string
*/
private $_errorTitle;
protected $_errorTitle = '';
/**
* Error
*
* @var string
*/
private $_error;
protected $_error = '';
/**
* Prompt title
*
* @var string
*/
private $_promptTitle;
protected $_promptTitle = '';
/**
* Prompt
*
* @var string
*/
private $_prompt;
protected $_prompt = '';
/**
* Create a new PHPExcel\Cell_DataValidation
*/
public function __construct()
{
// Initialise member variables
$this->_formula1 = '';
$this->_formula2 = '';
$this->_type = Cell_DataValidation::TYPE_NONE;
$this->_errorStyle = Cell_DataValidation::STYLE_STOP;
$this->_operator = '';
$this->_allowBlank = FALSE;
$this->_showDropDown = FALSE;
$this->_showInputMessage = FALSE;
$this->_showErrorMessage = FALSE;
$this->_errorTitle = '';
$this->_error = '';
$this->_promptTitle = '';
$this->_prompt = '';
}
/**

View File

@ -37,6 +37,52 @@ namespace PHPExcel;
*/
class Shared_CodePage
{
protected static $_codepages = array(
case 367 => 'ASCII'; // ASCII
case 437 => 'CP437'; // OEM US
case 737 => 'CP737'; // OEM Greek
case 775 => 'CP775'; // OEM Baltic
case 850 => 'CP850'; // OEM Latin I
case 852 => 'CP852'; // OEM Latin II (Central European)
case 855 => 'CP855'; // OEM Cyrillic
case 857 => 'CP857'; // OEM Turkish
case 858 => 'CP858'; // OEM Multilingual Latin I with Euro
case 860 => 'CP860'; // OEM Portugese
case 861 => 'CP861'; // OEM Icelandic
case 862 => 'CP862'; // OEM Hebrew
case 863 => 'CP863'; // OEM Canadian (French)
case 864 => 'CP864'; // OEM Arabic
case 865 => 'CP865'; // OEM Nordic
case 866 => 'CP866'; // OEM Cyrillic (Russian)
case 869 => 'CP869'; // OEM Greek (Modern)
case 874 => 'CP874'; // ANSI Thai
case 932 => 'CP932'; // ANSI Japanese Shift-JIS
case 936 => 'CP936'; // ANSI Chinese Simplified GBK
case 949 => 'CP949'; // ANSI Korean (Wansung)
case 950 => 'CP950'; // ANSI Chinese Traditional BIG5
case 1200 => 'UTF-16LE'; // UTF-16 (BIFF8)
case 1250 => 'CP1250'; // ANSI Latin II (Central European)
case 1251 => 'CP1251'; // ANSI Cyrillic
case 0 => 'CP1252'; // CodePage is not always correctly set when the xls file was saved by Apple's Numbers program, so default it
case 1252 => 'CP1252'; // ANSI Latin I (BIFF4-BIFF7)
case 1253 => 'CP1253'; // ANSI Greek
case 1254 => 'CP1254'; // ANSI Turkish
case 1255 => 'CP1255'; // ANSI Hebrew
case 1256 => 'CP1256'; // ANSI Arabic
case 1257 => 'CP1257'; // ANSI Baltic
case 1258 => 'CP1258'; // ANSI Vietnamese
case 1361 => 'CP1361'; // ANSI Korean (Johab)
case 10000 => 'MAC'; // Apple Roman
case 10006 => 'MACGREEK'; // Macintosh Greek
case 10007 => 'MACCYRILLIC'; // Macintosh Cyrillic
case 10029 => 'MACCENTRALEUROPE'; // Macintosh Central Europe
case 10079 => 'MACICELAND'; // Macintosh Icelandic
case 10081 => 'MACTURKISH'; // Macintosh Turkish
case 32768 => 'MAC'; // Apple Roman
case 65000 => 'UTF-7'; // Unicode (UTF-7)
case 65001 => 'UTF-8'; // Unicode (UTF-8)
);
/**
* Convert Microsoft Code Page Identifier to Code Page Name which iconv
* and mbstring understands
@ -48,53 +94,12 @@ class Shared_CodePage
public static function NumberToName($codePage = 1252)
{
switch ($codePage) {
case 367: return 'ASCII'; break; // ASCII
case 437: return 'CP437'; break; // OEM US
case 720: throw new Exception('Code page 720 not supported.');
break; // OEM Arabic
case 737: return 'CP737'; break; // OEM Greek
case 775: return 'CP775'; break; // OEM Baltic
case 850: return 'CP850'; break; // OEM Latin I
case 852: return 'CP852'; break; // OEM Latin II (Central European)
case 855: return 'CP855'; break; // OEM Cyrillic
case 857: return 'CP857'; break; // OEM Turkish
case 858: return 'CP858'; break; // OEM Multilingual Latin I with Euro
case 860: return 'CP860'; break; // OEM Portugese
case 861: return 'CP861'; break; // OEM Icelandic
case 862: return 'CP862'; break; // OEM Hebrew
case 863: return 'CP863'; break; // OEM Canadian (French)
case 864: return 'CP864'; break; // OEM Arabic
case 865: return 'CP865'; break; // OEM Nordic
case 866: return 'CP866'; break; // OEM Cyrillic (Russian)
case 869: return 'CP869'; break; // OEM Greek (Modern)
case 874: return 'CP874'; break; // ANSI Thai
case 932: return 'CP932'; break; // ANSI Japanese Shift-JIS
case 936: return 'CP936'; break; // ANSI Chinese Simplified GBK
case 949: return 'CP949'; break; // ANSI Korean (Wansung)
case 950: return 'CP950'; break; // ANSI Chinese Traditional BIG5
case 1200: return 'UTF-16LE'; break; // UTF-16 (BIFF8)
case 1250: return 'CP1250'; break; // ANSI Latin II (Central European)
case 1251: return 'CP1251'; break; // ANSI Cyrillic
case 0: // CodePage is not always correctly set when the xls file was saved by Apple's Numbers program
case 1252: return 'CP1252'; break; // ANSI Latin I (BIFF4-BIFF7)
case 1253: return 'CP1253'; break; // ANSI Greek
case 1254: return 'CP1254'; break; // ANSI Turkish
case 1255: return 'CP1255'; break; // ANSI Hebrew
case 1256: return 'CP1256'; break; // ANSI Arabic
case 1257: return 'CP1257'; break; // ANSI Baltic
case 1258: return 'CP1258'; break; // ANSI Vietnamese
case 1361: return 'CP1361'; break; // ANSI Korean (Johab)
case 10000: return 'MAC'; break; // Apple Roman
case 10006: return 'MACGREEK'; break; // Macintosh Greek
case 10007: return 'MACCYRILLIC'; break; // Macintosh Cyrillic
case 10029: return 'MACCENTRALEUROPE'; break; // Macintosh Central Europe
case 10079: return 'MACICELAND'; break; // Macintosh Icelandic
case 10081: return 'MACTURKISH'; break; // Macintosh Turkish
case 32768: return 'MAC'; break; // Apple Roman
case 32769: throw new Exception('Code page 32769 not supported.');
break; // ANSI Latin I (BIFF2-BIFF3)
case 65000: return 'UTF-7'; break; // Unicode (UTF-7)
case 65001: return 'UTF-8'; break; // Unicode (UTF-8)
case 720: throw new Exception('Code page 720 not supported.'); break; // OEM Arabic
case 32769: throw new Exception('Code page 32769 not supported.'); break; // ANSI Latin I (BIFF2-BIFF3)
default:
if isset(self::$_codepages[$codePage]) {
return self::$_codepages[$codePage];
}
}
throw new Exception('Unknown codepage: ' . $codePage);

View File

@ -26,7 +26,7 @@ Develop: [![Build Status](https://travis-ci.org/PHPOffice/PHPExcel.png?branch=de
## Requirements
* PHP version 5.2.0 or higher
* PHP version 5.3.0 or higher
* PHP extension php_zip enabled (required if you need PHPExcel to handle .xlsx .ods or .gnumeric files)
* PHP extension php_xml enabled
* PHP extension php_gd2 enabled (optional, but required for exact column width autocalculation)

View File

@ -22,7 +22,7 @@
}
],
"require": {
"php": ">=5.2.0",
"php": ">=5.3.0",
"ext-xml": "*"
},
"recommend": {