Advertisement
Guest User

Untitled

a guest
Jul 15th, 2020
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.42 KB | None | 0 0
  1. function NAME(string $filePath) {
  2.         $reader = IOFactory::createReaderForFile($filePath);
  3.         $reader->setReadDataOnly(true);
  4.  
  5.         $spreadsheet = $reader->load($filePath);
  6.  
  7.         $worksheets = $spreadsheet->getWorksheetIterator();
  8.         $worksheets->rewind();
  9.         Assertion::true($worksheets->valid(), 'Invalid worksheet');
  10.  
  11.         $rowsIterator = $worksheets->current()->getRowIterator();
  12.  
  13.         return new SpreadsheetRowIterator($rowsIterator);
  14. }
  15.  
  16. final class SpreadsheetRowIterator extends \FilterIterator
  17. {
  18.     /**
  19.      * @param Row $row
  20.      * @return array
  21.      */
  22.     private function convertRowToArray(Row $row): array
  23.     {
  24.         $cellIterator = $row->getCellIterator();
  25.         $cellIterator->setIterateOnlyExistingCells(false);
  26.         $cells = [];
  27.         foreach ($cellIterator as $cell) {
  28.             $cells[] = $cell->getValue();
  29.         }
  30.  
  31.         $cellIterator->__destruct();
  32.  
  33.         return $cells;
  34.     }
  35.  
  36.     public function current(): array
  37.     {
  38.         $row = $this->getInnerIterator()->current();
  39.         assert($row instanceof Row);
  40.  
  41.         return $this->convertRowToArray($row);
  42.     }
  43.  
  44.     /**
  45.      * @inheritDoc
  46.      */
  47.     public function accept(): bool
  48.     {
  49.         $row = $this->current();
  50.  
  51.         foreach ($row as $item) {
  52.             if ($item !== null) {
  53.                 return true;
  54.             }
  55.         }
  56.  
  57.         return false;
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement