Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function NAME(string $filePath) {
- $reader = IOFactory::createReaderForFile($filePath);
- $reader->setReadDataOnly(true);
- $spreadsheet = $reader->load($filePath);
- $worksheets = $spreadsheet->getWorksheetIterator();
- $worksheets->rewind();
- Assertion::true($worksheets->valid(), 'Invalid worksheet');
- $rowsIterator = $worksheets->current()->getRowIterator();
- return new SpreadsheetRowIterator($rowsIterator);
- }
- final class SpreadsheetRowIterator extends \FilterIterator
- {
- /**
- * @param Row $row
- * @return array
- */
- private function convertRowToArray(Row $row): array
- {
- $cellIterator = $row->getCellIterator();
- $cellIterator->setIterateOnlyExistingCells(false);
- $cells = [];
- foreach ($cellIterator as $cell) {
- $cells[] = $cell->getValue();
- }
- $cellIterator->__destruct();
- return $cells;
- }
- public function current(): array
- {
- $row = $this->getInnerIterator()->current();
- assert($row instanceof Row);
- return $this->convertRowToArray($row);
- }
- /**
- * @inheritDoc
- */
- public function accept(): bool
- {
- $row = $this->current();
- foreach ($row as $item) {
- if ($item !== null) {
- return true;
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement