Differences Between: [Versions 310 and 311] [Versions 311 and 400] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403] [Versions 39 and 311]
1 <?php 2 3 namespace PhpOffice\PhpSpreadsheet\Reader\Xlsx; 4 5 use PhpOffice\PhpSpreadsheet\Cell\Coordinate; 6 use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; 7 use SimpleXMLElement; 8 9 class DataValidations 10 { 11 private $worksheet; 12 13 private $worksheetXml; 14 15 public function __construct(Worksheet $workSheet, SimpleXMLElement $worksheetXml) 16 { 17 $this->worksheet = $workSheet; 18 $this->worksheetXml = $worksheetXml; 19 } 20 21 public function load(): void 22 { 23 foreach ($this->worksheetXml->dataValidations->dataValidation as $dataValidation) { 24 // Uppercase coordinate 25 $range = strtoupper($dataValidation['sqref']); 26 $rangeSet = explode(' ', $range); 27 foreach ($rangeSet as $range) { 28 $stRange = $this->worksheet->shrinkRangeToFit($range); 29 30 // Extract all cell references in $range 31 foreach (Coordinate::extractAllCellReferencesInRange($stRange) as $reference) { 32 // Create validation 33 $docValidation = $this->worksheet->getCell($reference)->getDataValidation(); 34 $docValidation->setType((string) $dataValidation['type']); 35 $docValidation->setErrorStyle((string) $dataValidation['errorStyle']); 36 $docValidation->setOperator((string) $dataValidation['operator']); 37 $docValidation->setAllowBlank($dataValidation['allowBlank'] != 0); 38 $docValidation->setShowDropDown($dataValidation['showDropDown'] == 0); 39 $docValidation->setShowInputMessage($dataValidation['showInputMessage'] != 0); 40 $docValidation->setShowErrorMessage($dataValidation['showErrorMessage'] != 0); 41 $docValidation->setErrorTitle((string) $dataValidation['errorTitle']); 42 $docValidation->setError((string) $dataValidation['error']); 43 $docValidation->setPromptTitle((string) $dataValidation['promptTitle']); 44 $docValidation->setPrompt((string) $dataValidation['prompt']); 45 $docValidation->setFormula1((string) $dataValidation->formula1); 46 $docValidation->setFormula2((string) $dataValidation->formula2); 47 } 48 } 49 } 50 } 51 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body