Spaces:
Sleeping
Sleeping
processmaker-community / processmaker-files /thirdparty /pear /Spreadsheet /Excel /Writer /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 | |
| * <jmcnamara@cpan.org> | |
| * | |
| * 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. | |
| * | |
| * License Information: | |
| * | |
| * 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 | |
| */ | |
| require_once('PEAR.php'); | |
| /** | |
| * Class for generating Excel XF records (formats) | |
| * | |
| * @author Xavier Noguer <xnoguer@rezebra.com> | |
| * @category FileFormats | |
| * @package Spreadsheet_Excel_Writer | |
| */ | |
| class Spreadsheet_Excel_Writer_Format extends PEAR | |
| { | |
| /** | |
| * The index given by the workbook when creating a new format. | |
| * @var integer | |
| */ | |
| var $_xf_index; | |
| /** | |
| * Index to the FONT record. | |
| * @var integer | |
| */ | |
| var $font_index; | |
| /** | |
| * The font name (ASCII). | |
| * @var string | |
| */ | |
| var $_font_name; | |
| /** | |
| * Height of font (1/20 of a point) | |
| * @var integer | |
| */ | |
| var $_size; | |
| /** | |
| * Bold style | |
| * @var integer | |
| */ | |
| var $_bold; | |
| /** | |
| * Bit specifiying if the font is italic. | |
| * @var integer | |
| */ | |
| var $_italic; | |
| /** | |
| * Index to the cell's color | |
| * @var integer | |
| */ | |
| var $_color; | |
| /** | |
| * The text underline property | |
| * @var integer | |
| */ | |
| var $_underline; | |
| /** | |
| * Bit specifiying if the font has strikeout. | |
| * @var integer | |
| */ | |
| var $_font_strikeout; | |
| /** | |
| * Bit specifiying if the font has outline. | |
| * @var integer | |
| */ | |
| var $_font_outline; | |
| /** | |
| * Bit specifiying if the font has shadow. | |
| * @var integer | |
| */ | |
| var $_font_shadow; | |
| /** | |
| * 2 bytes specifiying the script type for the font. | |
| * @var integer | |
| */ | |
| var $_font_script; | |
| /** | |
| * Byte specifiying the font family. | |
| * @var integer | |
| */ | |
| var $_font_family; | |
| /** | |
| * Byte specifiying the font charset. | |
| * @var integer | |
| */ | |
| var $_font_charset; | |
| /** | |
| * An index (2 bytes) to a FORMAT record (number format). | |
| * @var integer | |
| */ | |
| var $_num_format; | |
| /** | |
| * Bit specifying if formulas are hidden. | |
| * @var integer | |
| */ | |
| var $_hidden; | |
| /** | |
| * Bit specifying if the cell is locked. | |
| * @var integer | |
| */ | |
| var $_locked; | |
| /** | |
| * The three bits specifying the text horizontal alignment. | |
| * @var integer | |
| */ | |
| var $_text_h_align; | |
| /** | |
| * Bit specifying if the text is wrapped at the right border. | |
| * @var integer | |
| */ | |
| var $_text_wrap; | |
| /** | |
| * The three bits specifying the text vertical alignment. | |
| * @var integer | |
| */ | |
| var $_text_v_align; | |
| /** | |
| * 1 bit, apparently not used. | |
| * @var integer | |
| */ | |
| var $_text_justlast; | |
| /** | |
| * The two bits specifying the text rotation. | |
| * @var integer | |
| */ | |
| var $_rotation; | |
| /** | |
| * The cell's foreground color. | |
| * @var integer | |
| */ | |
| var $_fg_color; | |
| /** | |
| * The cell's background color. | |
| * @var integer | |
| */ | |
| var $_bg_color; | |
| /** | |
| * The cell's background fill pattern. | |
| * @var integer | |
| */ | |
| var $_pattern; | |
| /** | |
| * Style of the bottom border of the cell | |
| * @var integer | |
| */ | |
| var $_bottom; | |
| /** | |
| * Color of the bottom border of the cell. | |
| * @var integer | |
| */ | |
| var $_bottom_color; | |
| /** | |
| * Style of the top border of the cell | |
| * @var integer | |
| */ | |
| var $_top; | |
| /** | |
| * Color of the top border of the cell. | |
| * @var integer | |
| */ | |
| var $_top_color; | |
| /** | |
| * Style of the left border of the cell | |
| * @var integer | |
| */ | |
| var $_left; | |
| /** | |
| * Color of the left border of the cell. | |
| * @var integer | |
| */ | |
| var $_left_color; | |
| /** | |
| * Style of the right border of the cell | |
| * @var integer | |
| */ | |
| var $_right; | |
| /** | |
| * Color of the right border of the cell. | |
| * @var integer | |
| */ | |
| var $_right_color; | |
| /** | |
| * Constructor | |
| * | |
| * @access private | |
| * @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->_xf_index = $index; | |
| $this->_BIFF_version = $BIFF_version; | |
| $this->font_index = 0; | |
| $this->_font_name = 'Arial'; | |
| $this->_size = 10; | |
| $this->_bold = 0x0190; | |
| $this->_italic = 0; | |
| $this->_color = 0x7FFF; | |
| $this->_underline = 0; | |
| $this->_font_strikeout = 0; | |
| $this->_font_outline = 0; | |
| $this->_font_shadow = 0; | |
| $this->_font_script = 0; | |
| $this->_font_family = 0; | |
| $this->_font_charset = 0; | |
| $this->_num_format = 0; | |
| $this->_hidden = 0; | |
| $this->_locked = 0; | |
| $this->_text_h_align = 0; | |
| $this->_text_wrap = 0; | |
| $this->_text_v_align = 2; | |
| $this->_text_justlast = 0; | |
| $this->_rotation = 0; | |
| $this->_fg_color = 0x40; | |
| $this->_bg_color = 0x41; | |
| $this->_pattern = 0; | |
| $this->_bottom = 0; | |
| $this->_top = 0; | |
| $this->_left = 0; | |
| $this->_right = 0; | |
| $this->_diag = 0; | |
| $this->_bottom_color = 0x40; | |
| $this->_top_color = 0x40; | |
| $this->_left_color = 0x40; | |
| $this->_right_color = 0x40; | |
| $this->_diag_color = 0x40; | |
| // Set properties passed to Spreadsheet_Excel_Writer_Workbook::addFormat() | |
| foreach($properties as $property => $value) | |
| { | |
| if(method_exists($this,'set'.ucwords($property))) | |
| { | |
| $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 | |
| */ | |
| function getXf($style) | |
| { | |
| // Set the type of the XF record and some of the attributes. | |
| if ($style == "style") { | |
| $style = 0xFFF5; | |
| } | |
| else { | |
| $style = $this->_locked; | |
| $style |= $this->_hidden << 1; | |
| } | |
| // Flags to indicate if attributes have been set. | |
| $atr_num = ($this->_num_format != 0)?1:0; | |
| $atr_fnt = ($this->font_index != 0)?1:0; | |
| $atr_alc = ($this->_text_wrap)?1:0; | |
| $atr_bdr = ($this->_bottom || | |
| $this->_top || | |
| $this->_left || | |
| $this->_right)?1:0; | |
| $atr_pat = (($this->_fg_color != 0x40) || | |
| ($this->_bg_color != 0x41) || | |
| $this->_pattern)?1:0; | |
| $atr_prot = $this->_locked | $this->_hidden; | |
| // Zero the default border colour if the border has not been set. | |
| if ($this->_bottom == 0) { | |
| $this->_bottom_color = 0; | |
| } | |
| if ($this->_top == 0) { | |
| $this->_top_color = 0; | |
| } | |
| if ($this->_right == 0) { | |
| $this->_right_color = 0; | |
| } | |
| if ($this->_left == 0) { | |
| $this->_left_color = 0; | |
| } | |
| if ($this->_diag == 0) { | |
| $this->_diag_color = 0; | |
| } | |
| $record = 0x00E0; // Record identifier | |
| if ($this->_BIFF_version == 0x0500) { | |
| $length = 0x0010; // Number of bytes to follow | |
| } | |
| if ($this->_BIFF_version == 0x0600) { | |
| $length = 0x0014; | |
| } | |
| $ifnt = $this->font_index; // Index to FONT record | |
| $ifmt = $this->_num_format; // Index to FORMAT record | |
| if ($this->_BIFF_version == 0x0500) | |
| { | |
| $align = $this->_text_h_align; // Alignment | |
| $align |= $this->_text_wrap << 3; | |
| $align |= $this->_text_v_align << 4; | |
| $align |= $this->_text_justlast << 7; | |
| $align |= $this->_rotation << 8; | |
| $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 | |
| $icv |= $this->_bg_color << 7; | |
| $fill = $this->_pattern; // Fill and border line style | |
| $fill |= $this->_bottom << 6; | |
| $fill |= $this->_bottom_color << 9; | |
| $border1 = $this->_top; // Border line style and color | |
| $border1 |= $this->_left << 3; | |
| $border1 |= $this->_right << 6; | |
| $border1 |= $this->_top_color << 9; | |
| $border2 = $this->_left_color; // Border color | |
| $border2 |= $this->_right_color << 7; | |
| $header = pack("vv", $record, $length); | |
| $data = pack("vvvvvvvv", $ifnt, $ifmt, $style, $align, | |
| $icv, $fill, | |
| $border1, $border2); | |
| } | |
| elseif ($this->_BIFF_version == 0x0600) | |
| { | |
| $align = $this->_text_h_align; // Alignment | |
| $align |= $this->_text_wrap << 3; | |
| $align |= $this->_text_v_align << 4; | |
| $align |= $this->_text_justlast << 7; | |
| $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 | |
| $icv |= $this->_bg_color << 7; | |
| $border1 = $this->_left; // Border line style and color | |
| $border1 |= $this->_right << 4; | |
| $border1 |= $this->_top << 8; | |
| $border1 |= $this->_bottom << 12; | |
| $border1 |= $this->_left_color << 16; | |
| $border1 |= $this->_right_color << 23; | |
| $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->_top_color; // Border color | |
| $border2 |= $this->_bottom_color << 7; | |
| $border2 |= $this->_diag_color << 14; | |
| $border2 |= $this->_diag << 21; | |
| $border2 |= $this->_pattern << 26; | |
| $header = pack("vv", $record, $length); | |
| $rotation = 0x00; | |
| $biff8_options = 0x00; | |
| $data = pack("vvvC", $ifnt, $ifmt, $style, $align); | |
| $data .= pack("CCC", $rotation, $biff8_options, $used_attrib); | |
| $data .= pack("VVv", $border1, $border2, $icv); | |
| } | |
| return($header.$data); | |
| } | |
| /** | |
| * Generate an Excel BIFF FONT record. | |
| * | |
| * @return string The FONT record | |
| */ | |
| function getFont() | |
| { | |
| $dyHeight = $this->_size * 20; // Height of font (1/20 of a point) | |
| $icv = $this->_color; // Index to color palette | |
| $bls = $this->_bold; // Bold style | |
| $sss = $this->_font_script; // Superscript/subscript | |
| $uls = $this->_underline; // Underline | |
| $bFamily = $this->_font_family; // Font family | |
| $bCharSet = $this->_font_charset; // Character set | |
| $encoding = 0; // TODO: Unicode support | |
| $cch = strlen($this->_font_name); // Length of font name | |
| $record = 0x31; // Record identifier | |
| if ($this->_BIFF_version == 0x0500) { | |
| $length = 0x0F + $cch; // Record length | |
| } | |
| elseif ($this->_BIFF_version == 0x0600) { | |
| $length = 0x10 + $cch; | |
| } | |
| $reserved = 0x00; // Reserved | |
| $grbit = 0x00; // Font attributes | |
| if ($this->_italic) { | |
| $grbit |= 0x02; | |
| } | |
| if ($this->_font_strikeout) { | |
| $grbit |= 0x08; | |
| } | |
| if ($this->_font_outline) { | |
| $grbit |= 0x10; | |
| } | |
| if ($this->_font_shadow) { | |
| $grbit |= 0x20; | |
| } | |
| $header = pack("vv", $record, $length); | |
| if ($this->_BIFF_version == 0x0500) { | |
| $data = pack("vvvvvCCCCC", $dyHeight, $grbit, $icv, $bls, | |
| $sss, $uls, $bFamily, | |
| $bCharSet, $reserved, $cch); | |
| } | |
| elseif ($this->_BIFF_version == 0x0600) { | |
| $data = pack("vvvvvCCCCCC", $dyHeight, $grbit, $icv, $bls, | |
| $sss, $uls, $bFamily, | |
| $bCharSet, $reserved, $cch, $encoding); | |
| } | |
| return($header . $data. $this->_font_name); | |
| } | |
| /** | |
| * 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 | |
| */ | |
| function getFontKey() | |
| { | |
| $key = "$this->_font_name$this->_size"; | |
| $key .= "$this->_font_script$this->_underline"; | |
| $key .= "$this->_font_strikeout$this->_bold$this->_font_outline"; | |
| $key .= "$this->_font_family$this->_font_charset"; | |
| $key .= "$this->_font_shadow$this->_color$this->_italic"; | |
| $key = str_replace(" ","_",$key); | |
| return ($key); | |
| } | |
| /** | |
| * Returns the index used by Spreadsheet_Excel_Writer_Worksheet::_XF() | |
| * | |
| * @return integer The index for the XF record | |
| */ | |
| function getXfIndex() | |
| { | |
| return($this->_xf_index); | |
| } | |
| /** | |
| * 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. | |
| * | |
| * @access private | |
| * @param string $name_color name of the color (i.e.: 'blue', 'red', etc..). Optional. | |
| * @return integer The color index | |
| */ | |
| function _getColor($name_color = '') | |
| { | |
| $colors = array( | |
| 'aqua' => 0x0F, | |
| 'cyan' => 0x0F, | |
| 'black' => 0x08, | |
| 'blue' => 0x0C, | |
| 'brown' => 0x10, | |
| 'magenta' => 0x0E, | |
| 'fuchsia' => 0x0E, | |
| 'gray' => 0x17, | |
| 'grey' => 0x17, | |
| 'green' => 0x11, | |
| 'lime' => 0x0B, | |
| 'navy' => 0x12, | |
| 'orange' => 0x35, | |
| 'purple' => 0x14, | |
| 'red' => 0x0A, | |
| 'silver' => 0x16, | |
| 'white' => 0x09, | |
| 'yellow' => 0x0D | |
| ); | |
| // Return the default color, 0x7FFF, if undef, | |
| if($name_color == '') { | |
| return(0x7FFF); | |
| } | |
| // 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, | |
| if(preg_match("/\D/",$name_color)) { | |
| return(0x7FFF); | |
| } | |
| // or an index < 8 mapped into the correct range, | |
| if($name_color < 8) { | |
| return($name_color + 8); | |
| } | |
| // or the default color if arg is outside range, | |
| if($name_color > 63) { | |
| return(0x7FFF); | |
| } | |
| // or an integer in the valid range | |
| return($name_color); | |
| } | |
| /** | |
| * Set cell alignment. | |
| * | |
| * @access public | |
| * @param string $location alignment for the cell ('left', 'right', etc...). | |
| */ | |
| function setAlign($location) | |
| { | |
| if (preg_match("/\d/",$location)) { | |
| return; // Ignore numbers | |
| } | |
| $location = strtolower($location); | |
| if ($location == 'left') { | |
| $this->_text_h_align = 1; | |
| } | |
| if ($location == 'centre') { | |
| $this->_text_h_align = 2; | |
| } | |
| if ($location == 'center') { | |
| $this->_text_h_align = 2; | |
| } | |
| if ($location == 'right') { | |
| $this->_text_h_align = 3; | |
| } | |
| if ($location == 'fill') { | |
| $this->_text_h_align = 4; | |
| } | |
| if ($location == 'justify') { | |
| $this->_text_h_align = 5; | |
| } | |
| if ($location == 'merge') { | |
| $this->_text_h_align = 6; | |
| } | |
| if ($location == 'equal_space') { // For T.K. | |
| $this->_text_h_align = 7; | |
| } | |
| if ($location == 'top') { | |
| $this->_text_v_align = 0; | |
| } | |
| if ($location == 'vcentre') { | |
| $this->_text_v_align = 1; | |
| } | |
| if ($location == 'vcenter') { | |
| $this->_text_v_align = 1; | |
| } | |
| if ($location == 'bottom') { | |
| $this->_text_v_align = 2; | |
| } | |
| if ($location == 'vjustify') { | |
| $this->_text_v_align = 3; | |
| } | |
| if ($location == 'vequal_space') { // For T.K. | |
| $this->_text_v_align = 4; | |
| } | |
| } | |
| /** | |
| * This is an alias for the unintuitive setAlign('merge') | |
| * | |
| * @access public | |
| */ | |
| function setMerge() | |
| { | |
| $this->setAlign('merge'); | |
| } | |
| /** | |
| * Sets the boldness of the text. | |
| * Bold has a range 100..1000. | |
| * 0 (400) is normal. 1 (700) is bold. | |
| * | |
| * @access public | |
| * @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). | |
| */ | |
| function setBold($weight = 1) | |
| { | |
| if($weight == 1) { | |
| $weight = 0x2BC; // Bold text | |
| } | |
| if($weight == 0) { | |
| $weight = 0x190; // Normal text | |
| } | |
| if($weight < 0x064) { | |
| $weight = 0x190; // Lower bound | |
| } | |
| if($weight > 0x3E8) { | |
| $weight = 0x190; // Upper bound | |
| } | |
| $this->_bold = $weight; | |
| } | |
| /************************************ | |
| * FUNCTIONS FOR SETTING CELLS BORDERS | |
| */ | |
| /** | |
| * Sets the width for the bottom border of the cell | |
| * | |
| * @access public | |
| * @param integer $style style of the cell border. 1 => thin, 2 => thick. | |
| */ | |
| function setBottom($style) | |
| { | |
| $this->_bottom = $style; | |
| } | |
| /** | |
| * Sets the width for the top border of the cell | |
| * | |
| * @access public | |
| * @param integer $style style of the cell top border. 1 => thin, 2 => thick. | |
| */ | |
| function setTop($style) | |
| { | |
| $this->_top = $style; | |
| } | |
| /** | |
| * Sets the width for the left border of the cell | |
| * | |
| * @access public | |
| * @param integer $style style of the cell left border. 1 => thin, 2 => thick. | |
| */ | |
| function setLeft($style) | |
| { | |
| $this->_left = $style; | |
| } | |
| /** | |
| * Sets the width for the right border of the cell | |
| * | |
| * @access public | |
| * @param integer $style style of the cell right border. 1 => thin, 2 => thick. | |
| */ | |
| function setRight($style) | |
| { | |
| $this->_right = $style; | |
| } | |
| /** | |
| * Set cells borders to the same style | |
| * | |
| * @access public | |
| * @param integer $style style to apply for all cell borders. 1 => thin, 2 => thick. | |
| */ | |
| function setBorder($style) | |
| { | |
| $this->setBottom($style); | |
| $this->setTop($style); | |
| $this->setLeft($style); | |
| $this->setRight($style); | |
| } | |
| /******************************************* | |
| * FUNCTIONS FOR SETTING CELLS BORDERS COLORS | |
| */ | |
| /** | |
| * Sets all the cell's borders to the same color | |
| * | |
| * @access public | |
| * @param mixed $color The color we are setting. Either a string (like 'blue'), | |
| * or an integer (range is [8...63]). | |
| */ | |
| function setBorderColor($color) | |
| { | |
| $this->setBottomColor($color); | |
| $this->setTopColor($color); | |
| $this->setLeftColor($color); | |
| $this->setRightColor($color); | |
| } | |
| /** | |
| * Sets the cell's bottom border color | |
| * | |
| * @access public | |
| * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). | |
| */ | |
| function setBottomColor($color) | |
| { | |
| $value = $this->_getColor($color); | |
| $this->_bottom_color = $value; | |
| } | |
| /** | |
| * Sets the cell's top border color | |
| * | |
| * @access public | |
| * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). | |
| */ | |
| function setTopColor($color) | |
| { | |
| $value = $this->_getColor($color); | |
| $this->_top_color = $value; | |
| } | |
| /** | |
| * Sets the cell's left border color | |
| * | |
| * @access public | |
| * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). | |
| */ | |
| function setLeftColor($color) | |
| { | |
| $value = $this->_getColor($color); | |
| $this->_left_color = $value; | |
| } | |
| /** | |
| * Sets the cell's right border color | |
| * | |
| * @access public | |
| * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). | |
| */ | |
| function setRightColor($color) | |
| { | |
| $value = $this->_getColor($color); | |
| $this->_right_color = $value; | |
| } | |
| /** | |
| * Sets the cell's foreground color | |
| * | |
| * @access public | |
| * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). | |
| */ | |
| function setFgColor($color) | |
| { | |
| $value = $this->_getColor($color); | |
| $this->_fg_color = $value; | |
| if ($this->_pattern == 0) { // force color to be seen | |
| $this->_pattern = 1; | |
| } | |
| } | |
| /** | |
| * Sets the cell's background color | |
| * | |
| * @access public | |
| * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). | |
| */ | |
| function setBgColor($color) | |
| { | |
| $value = $this->_getColor($color); | |
| $this->_bg_color = $value; | |
| if ($this->_pattern == 0) { // force color to be seen | |
| $this->_pattern = 1; | |
| } | |
| } | |
| /** | |
| * Sets the cell's color | |
| * | |
| * @access public | |
| * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]). | |
| */ | |
| function setColor($color) | |
| { | |
| $value = $this->_getColor($color); | |
| $this->_color = $value; | |
| } | |
| /** | |
| * Sets the fill pattern attribute of a cell | |
| * | |
| * @access public | |
| * @param integer $arg Optional. Defaults to 1. Meaningful values are: 0-18, | |
| * 0 meaning no background. | |
| */ | |
| function setPattern($arg = 1) | |
| { | |
| $this->_pattern = $arg; | |
| } | |
| /** | |
| * Sets the underline of the text | |
| * | |
| * @access public | |
| * @param integer $underline The value for underline. Possible values are: | |
| * 1 => underline, 2 => double underline. | |
| */ | |
| function setUnderline($underline) | |
| { | |
| $this->_underline = $underline; | |
| } | |
| /** | |
| * Sets the font style as italic | |
| * | |
| * @access public | |
| */ | |
| function setItalic() | |
| { | |
| $this->_italic = 1; | |
| } | |
| /** | |
| * Sets the font size | |
| * | |
| * @access public | |
| * @param integer $size The font size (in pixels I think). | |
| */ | |
| function setSize($size) | |
| { | |
| $this->_size = $size; | |
| } | |
| /** | |
| * Sets text wrapping | |
| * | |
| * @access public | |
| */ | |
| function setTextWrap() | |
| { | |
| $this->_text_wrap = 1; | |
| } | |
| /** | |
| * Sets the orientation of the text | |
| * | |
| * @access public | |
| * @param integer $angle The rotation angle for the text (clockwise). Possible | |
| values are: 0, 90, 270 and -1 for stacking top-to-bottom. | |
| */ | |
| function setTextRotation($angle) | |
| { | |
| switch ($angle) | |
| { | |
| case 0: | |
| $this->_rotation = 0; | |
| break; | |
| case 90: | |
| $this->_rotation = 3; | |
| break; | |
| case 270: | |
| $this->_rotation = 2; | |
| break; | |
| case -1: | |
| $this->_rotation = 1; | |
| break; | |
| default : | |
| return $this->raiseError("Invalid value for angle.". | |
| " Possible values are: 0, 90, 270 and -1 ". | |
| "for stacking top-to-bottom."); | |
| $this->_rotation = 0; | |
| break; | |
| } | |
| } | |
| /** | |
| * Sets the numeric format. | |
| * It can be date, time, currency, etc... | |
| * | |
| * @access public | |
| * @param integer $num_format The numeric format. | |
| */ | |
| function setNumFormat($num_format) | |
| { | |
| $this->_num_format = $num_format; | |
| } | |
| /** | |
| * Sets font as strikeout. | |
| * | |
| * @access public | |
| */ | |
| function setStrikeOut() | |
| { | |
| $this->_font_strikeout = 1; | |
| } | |
| /** | |
| * Sets outlining for a font. | |
| * | |
| * @access public | |
| */ | |
| function setOutLine() | |
| { | |
| $this->_font_outline = 1; | |
| } | |
| /** | |
| * Sets font as shadow. | |
| * | |
| * @access public | |
| */ | |
| function setShadow() | |
| { | |
| $this->_font_shadow = 1; | |
| } | |
| /** | |
| * Sets the script type of the text | |
| * | |
| * @access public | |
| * @param integer $script The value for script type. Possible values are: | |
| * 1 => superscript, 2 => subscript. | |
| */ | |
| function setScript($script) | |
| { | |
| $this->_font_script = $script; | |
| } | |
| /** | |
| * Locks a cell. | |
| * | |
| * @access public | |
| */ | |
| function setLocked() | |
| { | |
| $this->_locked = 1; | |
| } | |
| /** | |
| * Unlocks a cell. Useful for unprotecting particular cells of a protected sheet. | |
| * | |
| * @access public | |
| */ | |
| function setUnLocked() | |
| { | |
| $this->_locked = 0; | |
| } | |
| /** | |
| * Sets the font family name. | |
| * | |
| * @access public | |
| * @param string $fontfamily The font family name. Possible values are: | |
| * 'Times New Roman', 'Arial', 'Courier'. | |
| */ | |
| function setFontFamily($font_family) | |
| { | |
| $this->_font_name = $font_family; | |
| } | |
| } | |