Beispiel #1
1
 /**
  * Writes Excel BIFF BOUNDSHEET record.
  *
  * @param \PHPExcel\Worksheet  $sheet Worksheet name
  * @param integer $offset    Location of worksheet BOF
  */
 private function writeBoundSheet($sheet, $offset)
 {
     $sheetname = $sheet->getTitle();
     $record = 0x85;
     // Record identifier
     // sheet state
     switch ($sheet->getSheetState()) {
         case \PHPExcel\Worksheet::SHEETSTATE_VISIBLE:
             $ss = 0x0;
             break;
         case \PHPExcel\Worksheet::SHEETSTATE_HIDDEN:
             $ss = 0x1;
             break;
         case \PHPExcel\Worksheet::SHEETSTATE_VERYHIDDEN:
             $ss = 0x2;
             break;
         default:
             $ss = 0x0;
             break;
     }
     // sheet type
     $st = 0x0;
     $grbit = 0x0;
     // Visibility and sheet type
     $data = pack("VCC", $offset, $ss, $st);
     $data .= \PHPExcel\Shared\StringHelper::UTF8toBIFF8UnicodeShort($sheetname);
     $length = strlen($data);
     $header = pack("vv", $record, $length);
     $this->append($header . $data);
 }
Beispiel #2
0
 /**
  * Write a LABELSST record or a LABEL record. Which one depends on BIFF version
  * It differs from writeString by the writing of rich text strings.
  * @param int $row Row index (0-based)
  * @param int $col Column index (0-based)
  * @param string $str The string
  * @param mixed   $xfIndex The XF format index for the cell
  * @param array $arrcRun Index to Font record and characters beginning
  */
 private function writeRichTextString($row, $col, $str, $xfIndex, $arrcRun)
 {
     $record = 0xfd;
     // Record identifier
     $length = 0xa;
     // Bytes to follow
     $str = \PHPExcel\Shared\StringHelper::UTF8toBIFF8UnicodeShort($str, $arrcRun);
     /* check if string is already present */
     if (!isset($this->stringTable[$str])) {
         $this->stringTable[$str] = $this->stringUnique++;
     }
     $this->stringTotal++;
     $header = pack('vv', $record, $length);
     $data = pack('vvvV', $row, $col, $xfIndex, $this->stringTable[$str]);
     $this->append($header . $data);
 }
Beispiel #3
0
 /**
  * Get font record data
  *
  * @return string
  */
 public function writeFont()
 {
     $font_outline = 0;
     $font_shadow = 0;
     $icv = $this->colorIndex;
     // Index to color palette
     if ($this->font->getSuperScript()) {
         $sss = 1;
     } elseif ($this->font->getSubScript()) {
         $sss = 2;
     } else {
         $sss = 0;
     }
     $bFamily = 0;
     // Font family
     $bCharSet = \PHPExcel\Shared\Font::getCharsetFromFontName($this->font->getName());
     // Character set
     $record = 0x31;
     // Record identifier
     $reserved = 0x0;
     // Reserved
     $grbit = 0x0;
     // Font attributes
     if ($this->font->getItalic()) {
         $grbit |= 0x2;
     }
     if ($this->font->getStrikethrough()) {
         $grbit |= 0x8;
     }
     if ($font_outline) {
         $grbit |= 0x10;
     }
     if ($font_shadow) {
         $grbit |= 0x20;
     }
     $data = pack("vvvvvCCCC", $this->font->getSize() * 20, $grbit, $icv, self::mapBold($this->font->getBold()), $sss, self::mapUnderline($this->font->getUnderline()), $bFamily, $bCharSet, $reserved);
     $data .= \PHPExcel\Shared\StringHelper::UTF8toBIFF8UnicodeShort($this->font->getName());
     $length = strlen($data);
     $header = pack("vv", $record, $length);
     return $header . $data;
 }