You are here

DocProps.php in Loft Data Grids 6.2

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/DocProps.php
View source
<?php

/**
 * PHPExcel
 *
 * Copyright (c) 2006 - 2014 PHPExcel
 *
 * 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * @category   PHPExcel
 * @package    PHPExcel_Writer_Excel2007
 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
 * @version    ##VERSION##, ##DATE##
 */

/**
 * PHPExcel_Writer_Excel2007_DocProps
 *
 * @category   PHPExcel
 * @package    PHPExcel_Writer_Excel2007
 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
 */
class PHPExcel_Writer_Excel2007_DocProps extends PHPExcel_Writer_Excel2007_WriterPart {

  /**
   * Write docProps/app.xml to XML format
   *
   * @param 	PHPExcel	$pPHPExcel
   * @return 	string 		XML Output
   * @throws 	PHPExcel_Writer_Exception
   */
  public function writeDocPropsApp(PHPExcel $pPHPExcel = null) {

    // Create XML writer
    $objWriter = null;
    if ($this
      ->getParentWriter()
      ->getUseDiskCaching()) {
      $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this
        ->getParentWriter()
        ->getDiskCachingDirectory());
    }
    else {
      $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
    }

    // XML header
    $objWriter
      ->startDocument('1.0', 'UTF-8', 'yes');

    // Properties
    $objWriter
      ->startElement('Properties');
    $objWriter
      ->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties');
    $objWriter
      ->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');

    // Application
    $objWriter
      ->writeElement('Application', 'Microsoft Excel');

    // DocSecurity
    $objWriter
      ->writeElement('DocSecurity', '0');

    // ScaleCrop
    $objWriter
      ->writeElement('ScaleCrop', 'false');

    // HeadingPairs
    $objWriter
      ->startElement('HeadingPairs');

    // Vector
    $objWriter
      ->startElement('vt:vector');
    $objWriter
      ->writeAttribute('size', '2');
    $objWriter
      ->writeAttribute('baseType', 'variant');

    // Variant
    $objWriter
      ->startElement('vt:variant');
    $objWriter
      ->writeElement('vt:lpstr', 'Worksheets');
    $objWriter
      ->endElement();

    // Variant
    $objWriter
      ->startElement('vt:variant');
    $objWriter
      ->writeElement('vt:i4', $pPHPExcel
      ->getSheetCount());
    $objWriter
      ->endElement();
    $objWriter
      ->endElement();
    $objWriter
      ->endElement();

    // TitlesOfParts
    $objWriter
      ->startElement('TitlesOfParts');

    // Vector
    $objWriter
      ->startElement('vt:vector');
    $objWriter
      ->writeAttribute('size', $pPHPExcel
      ->getSheetCount());
    $objWriter
      ->writeAttribute('baseType', 'lpstr');
    $sheetCount = $pPHPExcel
      ->getSheetCount();
    for ($i = 0; $i < $sheetCount; ++$i) {
      $objWriter
        ->writeElement('vt:lpstr', $pPHPExcel
        ->getSheet($i)
        ->getTitle());
    }
    $objWriter
      ->endElement();
    $objWriter
      ->endElement();

    // Company
    $objWriter
      ->writeElement('Company', $pPHPExcel
      ->getProperties()
      ->getCompany());

    // Company
    $objWriter
      ->writeElement('Manager', $pPHPExcel
      ->getProperties()
      ->getManager());

    // LinksUpToDate
    $objWriter
      ->writeElement('LinksUpToDate', 'false');

    // SharedDoc
    $objWriter
      ->writeElement('SharedDoc', 'false');

    // HyperlinksChanged
    $objWriter
      ->writeElement('HyperlinksChanged', 'false');

    // AppVersion
    $objWriter
      ->writeElement('AppVersion', '12.0000');
    $objWriter
      ->endElement();

    // Return
    return $objWriter
      ->getData();
  }

  /**
   * Write docProps/core.xml to XML format
   *
   * @param 	PHPExcel	$pPHPExcel
   * @return 	string 		XML Output
   * @throws 	PHPExcel_Writer_Exception
   */
  public function writeDocPropsCore(PHPExcel $pPHPExcel = null) {

    // Create XML writer
    $objWriter = null;
    if ($this
      ->getParentWriter()
      ->getUseDiskCaching()) {
      $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this
        ->getParentWriter()
        ->getDiskCachingDirectory());
    }
    else {
      $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
    }

    // XML header
    $objWriter
      ->startDocument('1.0', 'UTF-8', 'yes');

    // cp:coreProperties
    $objWriter
      ->startElement('cp:coreProperties');
    $objWriter
      ->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
    $objWriter
      ->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
    $objWriter
      ->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
    $objWriter
      ->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
    $objWriter
      ->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');

    // dc:creator
    $objWriter
      ->writeElement('dc:creator', $pPHPExcel
      ->getProperties()
      ->getCreator());

    // cp:lastModifiedBy
    $objWriter
      ->writeElement('cp:lastModifiedBy', $pPHPExcel
      ->getProperties()
      ->getLastModifiedBy());

    // dcterms:created
    $objWriter
      ->startElement('dcterms:created');
    $objWriter
      ->writeAttribute('xsi:type', 'dcterms:W3CDTF');
    $objWriter
      ->writeRawData(date(DATE_W3C, $pPHPExcel
      ->getProperties()
      ->getCreated()));
    $objWriter
      ->endElement();

    // dcterms:modified
    $objWriter
      ->startElement('dcterms:modified');
    $objWriter
      ->writeAttribute('xsi:type', 'dcterms:W3CDTF');
    $objWriter
      ->writeRawData(date(DATE_W3C, $pPHPExcel
      ->getProperties()
      ->getModified()));
    $objWriter
      ->endElement();

    // dc:title
    $objWriter
      ->writeElement('dc:title', $pPHPExcel
      ->getProperties()
      ->getTitle());

    // dc:description
    $objWriter
      ->writeElement('dc:description', $pPHPExcel
      ->getProperties()
      ->getDescription());

    // dc:subject
    $objWriter
      ->writeElement('dc:subject', $pPHPExcel
      ->getProperties()
      ->getSubject());

    // cp:keywords
    $objWriter
      ->writeElement('cp:keywords', $pPHPExcel
      ->getProperties()
      ->getKeywords());

    // cp:category
    $objWriter
      ->writeElement('cp:category', $pPHPExcel
      ->getProperties()
      ->getCategory());
    $objWriter
      ->endElement();

    // Return
    return $objWriter
      ->getData();
  }

  /**
   * Write docProps/custom.xml to XML format
   *
   * @param 	PHPExcel	$pPHPExcel
   * @return 	string 		XML Output
   * @throws 	PHPExcel_Writer_Exception
   */
  public function writeDocPropsCustom(PHPExcel $pPHPExcel = null) {
    $customPropertyList = $pPHPExcel
      ->getProperties()
      ->getCustomProperties();
    if (empty($customPropertyList)) {
      return;
    }

    // Create XML writer
    $objWriter = null;
    if ($this
      ->getParentWriter()
      ->getUseDiskCaching()) {
      $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this
        ->getParentWriter()
        ->getDiskCachingDirectory());
    }
    else {
      $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
    }

    // XML header
    $objWriter
      ->startDocument('1.0', 'UTF-8', 'yes');

    // cp:coreProperties
    $objWriter
      ->startElement('Properties');
    $objWriter
      ->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties');
    $objWriter
      ->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
    foreach ($customPropertyList as $key => $customProperty) {
      $propertyValue = $pPHPExcel
        ->getProperties()
        ->getCustomPropertyValue($customProperty);
      $propertyType = $pPHPExcel
        ->getProperties()
        ->getCustomPropertyType($customProperty);
      $objWriter
        ->startElement('property');
      $objWriter
        ->writeAttribute('fmtid', '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}');
      $objWriter
        ->writeAttribute('pid', $key + 2);
      $objWriter
        ->writeAttribute('name', $customProperty);
      switch ($propertyType) {
        case 'i':
          $objWriter
            ->writeElement('vt:i4', $propertyValue);
          break;
        case 'f':
          $objWriter
            ->writeElement('vt:r8', $propertyValue);
          break;
        case 'b':
          $objWriter
            ->writeElement('vt:bool', $propertyValue ? 'true' : 'false');
          break;
        case 'd':
          $objWriter
            ->startElement('vt:filetime');
          $objWriter
            ->writeRawData(date(DATE_W3C, $propertyValue));
          $objWriter
            ->endElement();
          break;
        default:
          $objWriter
            ->writeElement('vt:lpwstr', $propertyValue);
          break;
      }
      $objWriter
        ->endElement();
    }
    $objWriter
      ->endElement();

    // Return
    return $objWriter
      ->getData();
  }

}

Classes

Namesort descending Description
PHPExcel_Writer_Excel2007_DocProps PHPExcel_Writer_Excel2007_DocProps