PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 3.6.51
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v3.6.51
6.2.14 6.2.13 6.2.12 6.2.10 6.2.11 6.2.9 6.2.8 6.2.7 6.2.6 6.2.5 6.2.4 6.2.3 6.2.2 3.6.22 3.6.31 3.6.40 3.6.41 3.6.42 3.6.50 3.6.51 3.6.60 3.6.61 3.6.62 3.6.64 3.6.65 All 196 releases
fluentform / app / Services / Spout / Reader / XLSX / Reader.php

Reader.php in Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder 3.6.51, at app/Services/Spout/Reader/XLSX/Reader.php

114 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Box\Spout\Reader\XLSX;
4
5 use Box\Spout\Common\Exception\IOException;
6 use Box\Spout\Reader\AbstractReader;
7 use Box\Spout\Reader\XLSX\Helper\SharedStringsHelper;
8
9 /**
10 * Class Reader
11 * This class provides support to read data from a XLSX file
12 *
13 * @package Box\Spout\Reader\XLSX
14 */
15 class Reader extends AbstractReader
16 {
17 /** @var \ZipArchive */
18 protected $zip;
19
20 /** @var \Box\Spout\Reader\XLSX\Helper\SharedStringsHelper Helper to work with shared strings */
21 protected $sharedStringsHelper;
22
23 /** @var SheetIterator To iterator over the XLSX sheets */
24 protected $sheetIterator;
25
26
27 /**
28 * Returns the reader's current options
29 *
30 * @return ReaderOptions
31 */
32 protected function getOptions()
33 {
34 if (!isset($this->options)) {
35 $this->options = new ReaderOptions();
36 }
37 return $this->options;
38 }
39
40 /**
41 * @param string $tempFolder Temporary folder where the temporary files will be created
42 * @return Reader
43 */
44 public function setTempFolder($tempFolder)
45 {
46 $this->getOptions()->setTempFolder($tempFolder);
47 return $this;
48 }
49
50 /**
51 * Returns whether stream wrappers are supported
52 *
53 * @return bool
54 */
55 protected function doesSupportStreamWrapper()
56 {
57 return false;
58 }
59
60 /**
61 * Opens the file at the given file path to make it ready to be read.
62 * It also parses the sharedStrings.xml file to get all the shared strings available in memory
63 * and fetches all the available sheets.
64 *
65 * @param string $filePath Path of the file to be read
66 * @return void
67 * @throws \Box\Spout\Common\Exception\IOException If the file at the given path or its content cannot be read
68 * @throws \Box\Spout\Reader\Exception\NoSheetsFoundException If there are no sheets in the file
69 */
70 protected function openReader($filePath)
71 {
72 $this->zip = new \ZipArchive();
73
74 if ($this->zip->open($filePath) === true) {
75 $this->sharedStringsHelper = new SharedStringsHelper($filePath, $this->getOptions()->getTempFolder());
76
77 if ($this->sharedStringsHelper->hasSharedStrings()) {
78 // Extracts all the strings from the sheets for easy access in the future
79 $this->sharedStringsHelper->extractSharedStrings();
80 }
81
82 $this->sheetIterator = new SheetIterator($filePath, $this->getOptions(), $this->sharedStringsHelper, $this->globalFunctionsHelper);
83 } else {
84 throw new IOException("Could not open $filePath for reading.");
85 }
86 }
87
88 /**
89 * Returns an iterator to iterate over sheets.
90 *
91 * @return SheetIterator To iterate over sheets
92 */
93 protected function getConcreteSheetIterator()
94 {
95 return $this->sheetIterator;
96 }
97
98 /**
99 * Closes the reader. To be used after reading the file.
100 *
101 * @return void
102 */
103 protected function closeReader()
104 {
105 if ($this->zip) {
106 $this->zip->close();
107 }
108
109 if ($this->sharedStringsHelper) {
110 $this->sharedStringsHelper->cleanup();
111 }
112 }
113 }
114