Source for file Format.php
Documentation is available at Format.php
- *  Module written/ported by Xavier Noguer <xnoguer@rezebra.com> 
- *  The majority of this is _NOT_ my code.  I simply ported it from the 
- *  PERL Spreadsheet::WriteExcel module. 
- *  The author of the Spreadsheet::WriteExcel module is John McNamara 
- *  I _DO_ maintain this code, and John McNamara has nothing to do with the 
- *  porting of this code to PHP.  Any questions directly related to this 
- *  class library should be directed to me. 
- *    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets 
- *    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com 
- *    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
- * Class for generating Excel XF records (formats) 
- * @author   Xavier Noguer <xnoguer@rezebra.com> 
- * @package  Spreadsheet_Excel_Writer 
-     * The index given by the workbook when creating a new format. 
-     * Index to the FONT record. 
-     * Height of font (1/20 of a point) 
-     * Bit specifiying if the font is italic. 
-     * Index to the cell's color 
-     * The text underline property 
-     * Bit specifiying if the font has strikeout. 
-     * Bit specifiying if the font has outline. 
-     * Bit specifiying if the font has shadow. 
-     * 2 bytes specifiying the script type for the font. 
-     * Byte specifiying the font family. 
-     * Byte specifiying the font charset. 
-     * An index (2 bytes) to a FORMAT record (number format). 
-     * Bit specifying if formulas are hidden. 
-     * Bit specifying if the cell is locked. 
-     * The three bits specifying the text horizontal alignment. 
-     * Bit specifying if the text is wrapped at the right border. 
-     * The three bits specifying the text vertical alignment. 
-     * 1 bit, apparently not used. 
-     * The two bits specifying the text rotation. 
-     * The cell's foreground color. 
-     * The cell's background color. 
-     * The cell's background fill pattern. 
-     * Style of the bottom border of the cell 
-     * Color of the bottom border of the cell. 
-     * Style of the top border of the cell 
-     * Color of the top border of the cell. 
-     * Style of the left border of the cell 
-     * Color of the left border of the cell. 
-     * Style of the right border of the cell 
-     * Color of the right border of the cell. 
-     * @param integer $index the XF index for the format. 
-     * @param array   $properties array with properties to be set on initialization. 
-     function Spreadsheet_Excel_Writer_Format($BIFF_version, $index - =  0, $properties- =   array())
 
-         $this->_BIFF_version   - =  $BIFF_version;
 
-         $this->_diag_color     - =  0x40;
 
-         // Set properties passed to Spreadsheet_Excel_Writer_Workbook::addFormat() 
-         foreach ($properties as $property - =>  $value)
 
-                 $method_name - =  'set'- . ucwords($property);
 
-                 $this->$method_name($value); 
-     * Generate an Excel BIFF XF record (style or cell). 
-     * @param string $style The type of the XF record ('style' or 'cell'). 
-     * @return string The XF record 
-         // Set the type of the XF record and some of the attributes. 
-         // Flags to indicate if attributes have been set. 
-         // Zero the default border colour if the border has not been set. 
-         $record         - =  0x00E0;              // Record identifier
 
-         if ($this->_BIFF_version - ==  0x0500) {
 
-             $length         - =  0x0010;              // Number of bytes to follow
 
-         if ($this->_BIFF_version - ==  0x0600) {
 
-         $ifnt           - =  $this->font_index;   // Index to FONT record
 
-         if ($this->_BIFF_version - ==  0x0500) {
 
-             $align         - |=  $atr_num- <<  10;
 
-             $align         - |=  $atr_fnt- <<  11;
 
-             $align         - |=  $atr_alc- <<  12;
 
-             $align         - |=  $atr_bdr- <<  13;
 
-             $align         - |=  $atr_pat- <<  14;
 
-             $align         - |=  $atr_prot- <<  15;
 
-             $icv            - =  $this->_fg_color;       // fg and bg pattern colors
 
-             $fill           - =  $this->_pattern;        // Fill and border line style
 
-             $border1        - =  $this->_top;            // Border line style and color
 
-             $border1       - |=  $this->_left-           <<  3;
 
-             $border1       - |=  $this->_right-          <<  6;
 
-             $header      - =  pack("vv",       $record, $length);
 
-             $data        - =  pack("vvvvvvvv", $ifnt, $ifmt, $style, $align,
 
-         } elseif ($this->_BIFF_version - ==  0x0600) {
 
-             $used_attrib    - =  $atr_num- <<  2;
 
-             $used_attrib   - |=  $atr_fnt- <<  3;
 
-             $used_attrib   - |=  $atr_alc- <<  4;
 
-             $used_attrib   - |=  $atr_bdr- <<  5;
 
-             $used_attrib   - |=  $atr_pat- <<  6;
 
-             $used_attrib   - |=  $atr_prot- <<  7;
 
-             $icv            - =  $this->_fg_color;      // fg and bg pattern colors
 
-             $border1        - =  $this->_left;          // Border line style and color
 
-             $border1       - |=  $this->_right-          <<  4;
 
-             $border1       - |=  $this->_top-            <<  8;
 
-             $diag_tl_to_rb - =  0; // FIXME: add method
 
-             $diag_tr_to_lb - =  0; // FIXME: add method
 
-             $border1       - |=  $diag_tl_to_rb- <<  30;
 
-             $border1       - |=  $diag_tr_to_lb- <<  31;
 
-             $border2       - |=  $this->_diag_color- <<  14;
 
-             $border2       - |=  $this->_diag- <<  21;
 
-             $header      - =  pack("vv",       $record, $length);
 
-             $data  - =  pack("vvvC", $ifnt, $ifmt, $style, $align);
 
-             $data - .=  pack("CCC", $rotation, $biff8_options, $used_attrib);
 
-             $data - .=  pack("VVv", $border1, $border2, $icv);
 
-     * Generate an Excel BIFF FONT record. 
-     * @return string The FONT record 
-         $dyHeight   - =  $this->_size-  *  20;    // Height of font (1/20 of a point)
 
-         $icv        - =  $this->_color;        // Index to color palette
 
-         $bls        - =  $this->_bold;         // Bold style
 
-         $encoding   - =  0;                    // TODO: Unicode support
 
-         $record     - =  0x31;                      // Record identifier
 
-         if ($this->_BIFF_version - ==  0x0500) {
 
-             $length     - =  0x0F- +  $cch;            // Record length
 
-         } elseif ($this->_BIFF_version - ==  0x0600) {
 
-         $reserved   - =  0x00;                // Reserved
 
-         $grbit      - =  0x00;                // Font attributes
 
-         $header  - =  pack("vv",         $record, $length);
 
-         if ($this->_BIFF_version - ==  0x0500) {
 
-             $data    - =  pack("vvvvvCCCCC", $dyHeight, $grbit, $icv, $bls,
 
-                                           $bCharSet, $reserved, $cch); 
-         } elseif ($this->_BIFF_version - ==  0x0600) {
 
-             $data    - =  pack("vvvvvCCCCCC", $dyHeight, $grbit, $icv, $bls,
 
-                                            $bCharSet, $reserved, $cch, $encoding); 
-     * Returns a unique hash key for a font. 
-     * Used by Spreadsheet_Excel_Writer_Workbook::_storeAllFonts() 
-     * The elements that form the key are arranged to increase the probability of 
-     * generating a unique key. Elements that hold a large range of numbers 
-     * (eg. _color) are placed between two binary elements such as _italic 
-     * @return string A key for this font 
-     * Returns the index used by Spreadsheet_Excel_Writer_Worksheet::_XF() 
-     * @return integer The index for the XF record 
-     * Used in conjunction with the set_xxx_color methods to convert a color 
-     * string into a number. Color range is 0..63 but we will restrict it 
-     * to 8..63 to comply with Gnumeric. Colors 0..7 are repeated in 8..15. 
-     * @param string $name_color name of the color (i.e.: 'blue', 'red', etc..). Optional. 
-     * @return integer The color index 
-     function _getColor($name_color - =  '')
 
-         // Return the default color, 0x7FFF, if undef, 
-         // or the color string converted to an integer, 
-         if (- isset ($colors[$name_color])) {
 
-             return($colors[$name_color]); 
-         // or the default color if string is unrecognised, 
-         // or an index < 8 mapped into the correct range, 
-         // or the default color if arg is outside range, 
-         // or an integer in the valid range 
-     * @param string $location alignment for the cell ('left', 'right', etc...). 
-             return;                      // Ignore numbers 
-         if ($location - ==  'left') {
 
-         if ($location - ==  'centre') {
 
-         if ($location - ==  'center') {
 
-         if ($location - ==  'right') {
 
-         if ($location - ==  'fill') {
 
-         if ($location - ==  'justify') {
 
-         if ($location - ==  'merge') {
 
-         if ($location - ==  'equal_space') { // For T.K.
 
-         if ($location - ==  'top') {
 
-         if ($location - ==  'vcentre') {
 
-         if ($location - ==  'vcenter') {
 
-         if ($location - ==  'bottom') {
 
-         if ($location - ==  'vjustify') {
 
-         if ($location - ==  'vequal_space') { // For T.K.
 
-     * Set cell horizontal alignment. 
-     * @param string $location alignment for the cell ('left', 'right', etc...). 
-             return;                      // Ignore numbers 
-         if ($location - ==  'left') {
 
-         if ($location - ==  'centre') {
 
-         if ($location - ==  'center') {
 
-         if ($location - ==  'right') {
 
-         if ($location - ==  'fill') {
 
-         if ($location - ==  'justify') {
 
-         if ($location - ==  'merge') {
 
-         if ($location - ==  'equal_space') { // For T.K.
 
-     * Set cell vertical alignment. 
-     * @param string $location alignment for the cell ('top', 'vleft', 'vright', etc...). 
-             return;                      // Ignore numbers 
-         if ($location - ==  'top') {
 
-         if ($location - ==  'vcentre') {
 
-         if ($location - ==  'vcenter') {
 
-         if ($location - ==  'bottom') {
 
-         if ($location - ==  'vjustify') {
 
-         if ($location - ==  'vequal_space') { // For T.K.
 
-     * This is an alias for the unintuitive setAlign('merge') 
-     * Sets the boldness of the text. 
-     * Bold has a range 100..1000. 
-     * 0 (400) is normal. 1 (700) is bold. 
-     * @param integer $weight Weight for the text, 0 maps to 400 (normal text), 
-                              1 maps to 700 (bold text). Valid range is: 100-1000. 
-                              It's Optional, default is 1 (bold). 
-             $weight - =  0x2BC;  // Bold text
 
-             $weight - =  0x190;  // Normal text
 
-             $weight - =  0x190;  // Lower bound
 
-             $weight - =  0x190;  // Upper bound
 
-     /************************************ 
-     * FUNCTIONS FOR SETTING CELLS BORDERS 
-     * Sets the width for the bottom border of the cell 
-     * @param integer $style style of the cell border. 1 => thin, 2 => thick. 
-     * Sets the width for the top border of the cell 
-     * @param integer $style style of the cell top border. 1 => thin, 2 => thick. 
-     * Sets the width for the left border of the cell 
-     * @param integer $style style of the cell left border. 1 => thin, 2 => thick. 
-     * Sets the width for the right border of the cell 
-     * @param integer $style style of the cell right border. 1 => thin, 2 => thick. 
-     * Set cells borders to the same style 
-     * @param integer $style style to apply for all cell borders. 1 => thin, 2 => thick. 
-     /******************************************* 
-     * FUNCTIONS FOR SETTING CELLS BORDERS COLORS 
-     * Sets all the cell's borders to the same color 
-     * @param mixed $color The color we are setting. Either a string (like 'blue'), 
-     *                      or an integer (range is [8...63]). 
-     * Sets the cell's bottom border color 
-     * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). 
-         $value - =  $this->_getColor($color);
 
-     * Sets the cell's top border color 
-     * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). 
-         $value - =  $this->_getColor($color);
 
-     * Sets the cell's left border color 
-     * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). 
-         $value - =  $this->_getColor($color);
 
-     * Sets the cell's right border color 
-     * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). 
-         $value - =  $this->_getColor($color);
 
-     * Sets the cell's foreground color 
-     * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). 
-         $value - =  $this->_getColor($color);
 
-         if ($this->_pattern-  ==  0) { // force color to be seen
 
-     * Sets the cell's background color 
-     * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). 
-         $value - =  $this->_getColor($color);
 
-         if ($this->_pattern-  ==  0) { // force color to be seen
 
-     * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). 
-         $value - =  $this->_getColor($color);
 
-     * Sets the fill pattern attribute of a cell 
-     * @param integer $arg Optional. Defaults to 1. Meaningful values are: 0-18, 
-     *                      0 meaning no background. 
-     * Sets the underline of the text 
-     * @param integer $underline The value for underline. Possible values are: 
-     *                           1 => underline, 2 => double underline. 
-     * Sets the font style as italic 
-     * @param integer $size The font size (in pixels I think). 
-     * Sets the orientation of the text 
-     * @param integer $angle The rotation angle for the text (clockwise). Possible 
-                             values are: 0, 90, 270 and -1 for stacking top-to-bottom. 
-                 if ($this->_BIFF_version - ==  0x0500) {
 
-                 } elseif ($this->_BIFF_version - ==  0x0600) {
 
-                 if ($this->_BIFF_version - ==  0x0500) {
 
-                 } elseif ($this->_BIFF_version - ==  0x0600) {
 
-                 if ($this->_BIFF_version - ==  0x0500) {
 
-                 } elseif ($this->_BIFF_version - ==  0x0600) {
 
-                 return $this->raiseError("Invalid value for angle."- . 
 
-                                   " Possible values are: 0, 90, 270 and -1 "- . 
 
-                                   "for stacking top-to-bottom."); 
-     * Sets the numeric format. 
-     * It can be date, time, currency, etc... 
-     * @param integer $num_format The numeric format. 
-     * Sets font as strikeout. 
-     * Sets outlining for a font. 
-     * Sets the script type of the text 
-     * @param integer $script The value for script type. Possible values are: 
-     *                         1 => superscript, 2 => subscript. 
-     * Unlocks a cell. Useful for unprotecting particular cells of a protected sheet. 
-     * Sets the font family name. 
-     * @param string $fontfamily The font family name. Possible values are: 
-     *                            'Times New Roman', 'Arial', 'Courier'. 
 
	
		Documentation generated on Wed, 09 Feb 2011 09:01:11 +0700 by phpDocumentor 1.4.2