You are here

private function PHPExcel_Writer_Excel2007_Workbook::_writeDefinedNameForAutofilter in Loft Data Grids 6.2

Same name and namespace in other branches
  1. 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php \PHPExcel_Writer_Excel2007_Workbook::_writeDefinedNameForAutofilter()

* Write Defined Name for autoFilter * *

Parameters

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

1 call to PHPExcel_Writer_Excel2007_Workbook::_writeDefinedNameForAutofilter()
PHPExcel_Writer_Excel2007_Workbook::_writeDefinedNames in vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php
* Write Defined Names * *

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php, line 351

Class

PHPExcel_Writer_Excel2007_Workbook
PHPExcel_Writer_Excel2007_Workbook

Code

private function _writeDefinedNameForAutofilter(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0) {

  // definedName for autoFilter
  $autoFilterRange = $pSheet
    ->getAutoFilter()
    ->getRange();
  if (!empty($autoFilterRange)) {
    $objWriter
      ->startElement('definedName');
    $objWriter
      ->writeAttribute('name', '_xlnm._FilterDatabase');
    $objWriter
      ->writeAttribute('localSheetId', $pSheetId);
    $objWriter
      ->writeAttribute('hidden', '1');

    // Create absolute coordinate and write as raw text
    $range = PHPExcel_Cell::splitRange($autoFilterRange);
    $range = $range[0];

    //	Strip any worksheet ref so we can make the cell ref absolute
    if (strpos($range[0], '!') !== false) {
      list($ws, $range[0]) = explode('!', $range[0]);
    }
    $range[0] = PHPExcel_Cell::absoluteCoordinate($range[0]);
    $range[1] = PHPExcel_Cell::absoluteCoordinate($range[1]);
    $range = implode(':', $range);
    $objWriter
      ->writeRawData('\'' . str_replace("'", "''", $pSheet
      ->getTitle()) . '\'!' . $range);
    $objWriter
      ->endElement();
  }
}