Ejemplo n.º 1
0
 /**
  * Constructor
  *
  * @param int  $BIFF_version		 BIFF version
  * @param int  $str_total		Total number of strings
  * @param int  $str_unique		Total number of unique strings
  * @param array  $str_table
  * @param mixed   $parser	  The formula parser created for the Workbook
  * @param string   $tempDir	  The temporary directory to be used
  * @param Worksheet $phpSheet
  */
 public function __construct($BIFF_version, &$str_total, &$str_unique, &$str_table, &$colors, $parser, $preCalculateFormulas, $phpSheet)
 {
     // It needs to call its parent's constructor explicitly
     parent::__construct();
     $this->_BIFF_version = $BIFF_version;
     if ($BIFF_version == 0x600) {
         // change BIFFwriter limit for CONTINUE records
         $this->_limit = 8224;
     }
     $this->_preCalculateFormulas = $preCalculateFormulas;
     $this->_str_total =& $str_total;
     $this->_str_unique =& $str_unique;
     $this->_str_table =& $str_table;
     $this->_colors =& $colors;
     $this->_parser = $parser;
     $this->_phpSheet = $phpSheet;
     //$this->ext_sheets		= array();
     //$this->offset			= 0;
     $this->_xls_strmax = 255;
     $this->_colinfo = array();
     $this->_selection = array(0, 0, 0, 0);
     $this->_active_pane = 3;
     $this->_print_headers = 0;
     $this->_outline_style = 0;
     $this->_outline_below = 1;
     $this->_outline_right = 1;
     $this->_outline_on = 1;
     // calculate values for DIMENSIONS record
     $this->_firstRowIndex = 0;
     $this->_lastRowIndex = -1;
     $this->_firstColumnIndex = 0;
     $this->_lastColumnIndex = -1;
     foreach ($this->_phpSheet->getCellCollection(false) as $cellID) {
         preg_match('/^(\\w+)(\\d+)$/U', $cellID, $matches);
         list(, $col, $row) = $matches;
         $column = Cell::columnIndexFromString($col) - 1;
         // Don't break Excel!
         if ($row + 1 > 65536 or $column + 1 > 256) {
             break;
         }
         $this->_firstRowIndex = min($this->_firstRowIndex, $row);
         $this->_lastRowIndex = max($this->_lastRowIndex, $row);
         $this->_firstColumnIndex = min($this->_firstColumnIndex, $column);
         $this->_lastColumnIndex = max($this->_lastColumnIndex, $column);
     }
     $this->_countCellStyleXfs = count($phpSheet->getParent()->getCellStyleXfCollection());
 }
Ejemplo n.º 2
0
 /**
  * Class constructor
  *
  * @param PHPExcel $phpExcel The Workbook
  * @param int $BIFF_verions BIFF version
  * @param int  $str_total		Total number of strings
  * @param int  $str_unique		Total number of unique strings
  * @param array  $str_table
  * @param mixed   $parser	  The formula parser created for the Workbook
  */
 public function __construct(PHPExcel $phpExcel = null, $BIFF_version = 0x600, &$str_total, &$str_unique, &$str_table, &$colors, $parser)
 {
     // It needs to call its parent's constructor explicitly
     parent::__construct();
     $this->_parser = $parser;
     $this->_biffsize = 0;
     $this->_palette = array();
     $this->_codepage = 0x4e4;
     // FIXME: should change for BIFF8
     $this->_country_code = -1;
     $this->_str_total =& $str_total;
     $this->_str_unique =& $str_unique;
     $this->_str_table =& $str_table;
     $this->_colors =& $colors;
     $this->_setPaletteXl97();
     $this->_phpExcel = $phpExcel;
     if ($BIFF_version == 0x600) {
         $this->_BIFF_version = 0x600;
         // change BIFFwriter limit for CONTINUE records
         $this->_limit = 8224;
         $this->_codepage = 0x4b0;
     }
     // Add empty sheets and Build color cache
     $countSheets = $phpExcel->getSheetCount();
     for ($i = 0; $i < $countSheets; ++$i) {
         $phpSheet = $phpExcel->getSheet($i);
         $this->_parser->setExtSheet($phpSheet->getTitle(), $i);
         // Register worksheet name with parser
         // for BIFF8
         if ($this->_BIFF_version == 0x600) {
             $supbook_index = 0x0;
             $ref = pack('vvv', $supbook_index, $i, $i);
             $this->_parser->_references[] = $ref;
             // Register reference with parser
         }
         // Sheet tab colors?
         if ($phpSheet->isTabColorSet()) {
             $this->_addColor($phpSheet->getTabColor()->getRGB());
         }
     }
 }