You are here

private function PHPExcel_Writer_Excel2007_Worksheet::_writeSheetViews in Loft Data Grids 6.2

Same name and namespace in other branches
  1. 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php \PHPExcel_Writer_Excel2007_Worksheet::_writeSheetViews()

* Write SheetViews * *

Parameters

PHPExcel_Shared_XMLWriter $objWriter XML Writer: * @param PHPExcel_Worksheet $pSheet Worksheet * @throws PHPExcel_Writer_Exception

1 call to PHPExcel_Writer_Excel2007_Worksheet::_writeSheetViews()
PHPExcel_Writer_Excel2007_Worksheet::writeWorksheet in vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php
* Write worksheet to XML format * *

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php, line 208

Class

PHPExcel_Writer_Excel2007_Worksheet
PHPExcel_Writer_Excel2007_Worksheet

Code

private function _writeSheetViews(PHPExcel_Shared_XMLWriter $objWriter = NULL, PHPExcel_Worksheet $pSheet = NULL) {

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

  // Sheet selected?
  $sheetSelected = false;
  if ($this
    ->getParentWriter()
    ->getPHPExcel()
    ->getIndex($pSheet) == $this
    ->getParentWriter()
    ->getPHPExcel()
    ->getActiveSheetIndex()) {
    $sheetSelected = true;
  }

  // sheetView
  $objWriter
    ->startElement('sheetView');
  $objWriter
    ->writeAttribute('tabSelected', $sheetSelected ? '1' : '0');
  $objWriter
    ->writeAttribute('workbookViewId', '0');

  // Zoom scales
  if ($pSheet
    ->getSheetView()
    ->getZoomScale() != 100) {
    $objWriter
      ->writeAttribute('zoomScale', $pSheet
      ->getSheetView()
      ->getZoomScale());
  }
  if ($pSheet
    ->getSheetView()
    ->getZoomScaleNormal() != 100) {
    $objWriter
      ->writeAttribute('zoomScaleNormal', $pSheet
      ->getSheetView()
      ->getZoomScaleNormal());
  }

  // View Layout Type
  if ($pSheet
    ->getSheetView()
    ->getView() !== PHPExcel_Worksheet_SheetView::SHEETVIEW_NORMAL) {
    $objWriter
      ->writeAttribute('view', $pSheet
      ->getSheetView()
      ->getView());
  }

  // Gridlines
  if ($pSheet
    ->getShowGridlines()) {
    $objWriter
      ->writeAttribute('showGridLines', 'true');
  }
  else {
    $objWriter
      ->writeAttribute('showGridLines', 'false');
  }

  // Row and column headers
  if ($pSheet
    ->getShowRowColHeaders()) {
    $objWriter
      ->writeAttribute('showRowColHeaders', '1');
  }
  else {
    $objWriter
      ->writeAttribute('showRowColHeaders', '0');
  }

  // Right-to-left
  if ($pSheet
    ->getRightToLeft()) {
    $objWriter
      ->writeAttribute('rightToLeft', 'true');
  }
  $activeCell = $pSheet
    ->getActiveCell();

  // Pane
  $pane = '';
  $topLeftCell = $pSheet
    ->getFreezePane();
  if ($topLeftCell != '' && $topLeftCell != 'A1') {
    $activeCell = $topLeftCell;

    // Calculate freeze coordinates
    $xSplit = $ySplit = 0;
    list($xSplit, $ySplit) = PHPExcel_Cell::coordinateFromString($topLeftCell);
    $xSplit = PHPExcel_Cell::columnIndexFromString($xSplit);

    // pane
    $pane = 'topRight';
    $objWriter
      ->startElement('pane');
    if ($xSplit > 1) {
      $objWriter
        ->writeAttribute('xSplit', $xSplit - 1);
    }
    if ($ySplit > 1) {
      $objWriter
        ->writeAttribute('ySplit', $ySplit - 1);
      $pane = $xSplit > 1 ? 'bottomRight' : 'bottomLeft';
    }
    $objWriter
      ->writeAttribute('topLeftCell', $topLeftCell);
    $objWriter
      ->writeAttribute('activePane', $pane);
    $objWriter
      ->writeAttribute('state', 'frozen');
    $objWriter
      ->endElement();
    if ($xSplit > 1 && $ySplit > 1) {

      //	Write additional selections if more than two panes (ie both an X and a Y split)
      $objWriter
        ->startElement('selection');
      $objWriter
        ->writeAttribute('pane', 'topRight');
      $objWriter
        ->endElement();
      $objWriter
        ->startElement('selection');
      $objWriter
        ->writeAttribute('pane', 'bottomLeft');
      $objWriter
        ->endElement();
    }
  }

  // Selection
  //				if ($pane != '') {
  //	Only need to write selection element if we have a split pane
  //		We cheat a little by over-riding the active cell selection, setting it to the split cell
  $objWriter
    ->startElement('selection');
  if ($pane != '') {
    $objWriter
      ->writeAttribute('pane', $pane);
  }
  $objWriter
    ->writeAttribute('activeCell', $activeCell);
  $objWriter
    ->writeAttribute('sqref', $activeCell);
  $objWriter
    ->endElement();

  //				}
  $objWriter
    ->endElement();
  $objWriter
    ->endElement();
}