You are here

private function PHPExcel_Writer_Excel2007_Worksheet::_writeSheetData in Loft Data Grids 7.2

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

* Write SheetData * *

Parameters

PHPExcel_Shared_XMLWriter $objWriter XML Writer: * @param PHPExcel_Worksheet $pSheet Worksheet * @param string[] $pStringTable String table * @throws PHPExcel_Writer_Exception

1 call to PHPExcel_Writer_Excel2007_Worksheet::_writeSheetData()
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 959

Class

PHPExcel_Writer_Excel2007_Worksheet
PHPExcel_Writer_Excel2007_Worksheet

Code

private function _writeSheetData(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pStringTable = null) {
  if (is_array($pStringTable)) {

    // Flipped stringtable, for faster index searching
    $aFlippedStringTable = $this
      ->getParentWriter()
      ->getWriterPart('stringtable')
      ->flipStringTable($pStringTable);

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

    // Get column count
    $colCount = PHPExcel_Cell::columnIndexFromString($pSheet
      ->getHighestColumn());

    // Highest row number
    $highestRow = $pSheet
      ->getHighestRow();

    // Loop through cells
    $cellsByRow = array();
    foreach ($pSheet
      ->getCellCollection() as $cellID) {
      $cellAddress = PHPExcel_Cell::coordinateFromString($cellID);
      $cellsByRow[$cellAddress[1]][] = $cellID;
    }
    $currentRow = 0;
    while ($currentRow++ < $highestRow) {

      // Get row dimension
      $rowDimension = $pSheet
        ->getRowDimension($currentRow);

      // Write current row?
      $writeCurrentRow = isset($cellsByRow[$currentRow]) || $rowDimension
        ->getRowHeight() >= 0 || $rowDimension
        ->getVisible() == false || $rowDimension
        ->getCollapsed() == true || $rowDimension
        ->getOutlineLevel() > 0 || $rowDimension
        ->getXfIndex() !== null;
      if ($writeCurrentRow) {

        // Start a new row
        $objWriter
          ->startElement('row');
        $objWriter
          ->writeAttribute('r', $currentRow);
        $objWriter
          ->writeAttribute('spans', '1:' . $colCount);

        // Row dimensions
        if ($rowDimension
          ->getRowHeight() >= 0) {
          $objWriter
            ->writeAttribute('customHeight', '1');
          $objWriter
            ->writeAttribute('ht', PHPExcel_Shared_String::FormatNumber($rowDimension
            ->getRowHeight()));
        }

        // Row visibility
        if ($rowDimension
          ->getVisible() == false) {
          $objWriter
            ->writeAttribute('hidden', 'true');
        }

        // Collapsed
        if ($rowDimension
          ->getCollapsed() == true) {
          $objWriter
            ->writeAttribute('collapsed', 'true');
        }

        // Outline level
        if ($rowDimension
          ->getOutlineLevel() > 0) {
          $objWriter
            ->writeAttribute('outlineLevel', $rowDimension
            ->getOutlineLevel());
        }

        // Style
        if ($rowDimension
          ->getXfIndex() !== null) {
          $objWriter
            ->writeAttribute('s', $rowDimension
            ->getXfIndex());
          $objWriter
            ->writeAttribute('customFormat', '1');
        }

        // Write cells
        if (isset($cellsByRow[$currentRow])) {
          foreach ($cellsByRow[$currentRow] as $cellAddress) {

            // Write cell
            $this
              ->_writeCell($objWriter, $pSheet, $cellAddress, $pStringTable, $aFlippedStringTable);
          }
        }

        // End row
        $objWriter
          ->endElement();
      }
    }
    $objWriter
      ->endElement();
  }
  else {
    throw new PHPExcel_Writer_Exception("Invalid parameters passed.");
  }
}