@@ 771-793 (lines=23) @@ | ||
768 | $ext_ref = preg_replace("/'$/", '', $ext_ref); // Remove trailing ' if any. |
|
769 | ||
770 | // Check if there is a sheet range eg., Sheet1:Sheet2. |
|
771 | if (preg_match('/:/', $ext_ref)) { |
|
772 | list($sheet_name1, $sheet_name2) = explode(':', $ext_ref); |
|
773 | ||
774 | $sheet1 = $this->getSheetIndex($sheet_name1); |
|
775 | if ($sheet1 == -1) { |
|
776 | throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name1 in formula"); |
|
777 | } |
|
778 | $sheet2 = $this->getSheetIndex($sheet_name2); |
|
779 | if ($sheet2 == -1) { |
|
780 | throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name2 in formula"); |
|
781 | } |
|
782 | ||
783 | // Reverse max and min sheet numbers if necessary |
|
784 | if ($sheet1 > $sheet2) { |
|
785 | list($sheet1, $sheet2) = [$sheet2, $sheet1]; |
|
786 | } |
|
787 | } else { // Single sheet name only. |
|
788 | $sheet1 = $this->getSheetIndex($ext_ref); |
|
789 | if ($sheet1 == -1) { |
|
790 | throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $ext_ref in formula"); |
|
791 | } |
|
792 | $sheet2 = $sheet1; |
|
793 | } |
|
794 | ||
795 | // References are stored relative to 0xFFFF. |
|
796 | $offset = -1 - $sheet1; |
|
@@ 817-839 (lines=23) @@ | ||
814 | $ext_ref = str_replace('\'\'', '\'', $ext_ref); // Replace escaped '' with ' |
|
815 | ||
816 | // Check if there is a sheet range eg., Sheet1:Sheet2. |
|
817 | if (preg_match('/:/', $ext_ref)) { |
|
818 | list($sheet_name1, $sheet_name2) = explode(':', $ext_ref); |
|
819 | ||
820 | $sheet1 = $this->getSheetIndex($sheet_name1); |
|
821 | if ($sheet1 == -1) { |
|
822 | throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name1 in formula"); |
|
823 | } |
|
824 | $sheet2 = $this->getSheetIndex($sheet_name2); |
|
825 | if ($sheet2 == -1) { |
|
826 | throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name2 in formula"); |
|
827 | } |
|
828 | ||
829 | // Reverse max and min sheet numbers if necessary |
|
830 | if ($sheet1 > $sheet2) { |
|
831 | list($sheet1, $sheet2) = [$sheet2, $sheet1]; |
|
832 | } |
|
833 | } else { // Single sheet name only. |
|
834 | $sheet1 = $this->getSheetIndex($ext_ref); |
|
835 | if ($sheet1 == -1) { |
|
836 | throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $ext_ref in formula"); |
|
837 | } |
|
838 | $sheet2 = $sheet1; |
|
839 | } |
|
840 | ||
841 | // assume all references belong to this document |
|
842 | $supbook_index = 0x00; |