ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
DataValidations.php
Go to the documentation of this file.
1 <?php
2 
4 
8 
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 }
__construct(Worksheet $workSheet, SimpleXMLElement $worksheetXml)
static extractAllCellReferencesInRange($cellRange)
Extract all cell references in range, which may be comprised of multiple cell ranges.
Definition: Coordinate.php:338