Vendor/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php
public function listWorksheetInfo($pFilename)
    {
        File::assertFile($pFilename);

        $xml = new XMLReader();
        $xml->xml($this->securityScanFile('compress.zlib://' . realpath($pFilename)), null, Settings::getLibXmlLoaderOptions());
        $xml->setParserProperty(2, true);

        $worksheetInfo = [];
        while ($xml->read()) {
            if ($xml->name == 'gnm:Sheet' && $xml->nodeType == XMLReader::ELEMENT) {
                $tmpInfo = [
                    'worksheetName' => '',
                    'lastColumnLetter' => 'A',
                    'lastColumnIndex' => 0,
                    'totalRows' => 0,
                    'totalColumns' => 0,
                ];

                while ($xml->read()) {
                    if ($xml->name == 'gnm:Name' && $xml->nodeType == XMLReader::ELEMENT) {
                        $xml->read(); //    Move onto the value node
                        $tmpInfo['worksheetName'] = (string) $xml->value;
                    } elseif ($xml->name == 'gnm:MaxCol' && $xml->nodeType == XMLReader::ELEMENT) {
                        $xml->read(); //    Move onto the value node
                        $tmpInfo['lastColumnIndex'] = (int) $xml->value;
                        $tmpInfo['totalColumns'] = (int) $xml->value + 1;
                    } elseif ($xml->name == 'gnm:MaxRow' && $xml->nodeType == XMLReader::ELEMENT) {
                        $xml->read(); //    Move onto the value node
                        $tmpInfo['totalRows'] = (int) $xml->value + 1;

                        break;
                    }
                }
                $tmpInfo['lastColumnLetter'] = Coordinate::stringFromColumnIndex($tmpInfo['lastColumnIndex'] + 1);
                $worksheetInfo[] = $tmpInfo;
            }
        }

        return $worksheetInfo;
    }
public function listWorksheetInfo($pFilename)
    {
        File::assertFile($pFilename);

        $xml = new XMLReader();
        $xml->xml($this->securityScanFile('compress.zlib://' . realpath($pFilename)), null, Settings::getLibXmlLoaderOptions());
        $xml->setParserProperty(2, true);

        $worksheetInfo = [];
        while ($xml->read()) {
            if ($xml->name == 'gnm:Sheet' && $xml->nodeType == XMLReader::ELEMENT) {
                $tmpInfo = [
                    'worksheetName' => '',
                    'lastColumnLetter' => 'A',
                    'lastColumnIndex' => 0,
                    'totalRows' => 0,
                    'totalColumns' => 0,
                ];

                while ($xml->read()) {
                    if ($xml->name == 'gnm:Name' && $xml->nodeType == XMLReader::ELEMENT) {
                        $xml->read(); //    Move onto the value node
                        $tmpInfo['worksheetName'] = (string) $xml->value;
                    } elseif ($xml->name == 'gnm:MaxCol' && $xml->nodeType == XMLReader::ELEMENT) {
                        $xml->read(); //    Move onto the value node
                        $tmpInfo['lastColumnIndex'] = (int) $xml->value;
                        $tmpInfo['totalColumns'] = (int) $xml->value + 1;
                    } elseif ($xml->name == 'gnm:MaxRow' && $xml->nodeType == XMLReader::ELEMENT) {
                        $xml->read(); //    Move onto the value node
                        $tmpInfo['totalRows'] = (int) $xml->value + 1;

                        break;
                    }
                }
                $tmpInfo['lastColumnLetter'] = Coordinate::stringFromColumnIndex($tmpInfo['lastColumnIndex'] + 1);
                $worksheetInfo[] = $tmpInfo;
            }
        }

        return $worksheetInfo;
    }
public function listWorksheetInfo ( $ pFilename ) { File :: assertFile ( $ pFilename ) ; $ xml = new XMLReader ( ) ; $ xml -> xml ( $ this -> securityScanFile ( 'compress.zlib://' . realpath ( $ pFilename ) ) , null , Settings :: getLibXmlLoaderOptions ( ) ) ; $ xml -> setParserProperty ( 2 , true ) ; $ worksheetInfo = [ ] ; while ( $ xml -> read ( ) ) { if ( $ xml -> name == 'gnm:Sheet' && $ xml -> nodeType == XMLReader :: ELEMENT ) { $ tmpInfo = [ 'worksheetName' => '' , 'lastColumnLetter' => 'A' , 'lastColumnIndex' => 0 , 'totalRows' => 0 , 'totalColumns' => 0 , ] ; while ( $ xml -> read ( ) ) { if ( $ xml -> name == 'gnm:Name' && $ xml -> nodeType == XMLReader :: ELEMENT ) { $ xml -> read ( ) ; //    Move onto the value node $ tmpInfo [ 'worksheetName' ] = ( string ) $ xml -> value ; } elseif ( $ xml -> name == 'gnm:MaxCol' && $ xml -> nodeType == XMLReader :: ELEMENT ) { $ xml -> read ( ) ; //    Move onto the value node $ tmpInfo [ 'lastColumnIndex' ] = ( int ) $ xml -> value ; $ tmpInfo [ 'totalColumns' ] = ( int ) $ xml -> value + 1 ; } elseif ( $ xml -> name == 'gnm:MaxRow' && $ xml -> nodeType == XMLReader :: ELEMENT ) { $ xml -> read ( ) ; //    Move onto the value node $ tmpInfo [ 'totalRows' ] = ( int ) $ xml -> value + 1 ; break ; } } $ tmpInfo [ 'lastColumnLetter' ] = Coordinate :: stringFromColumnIndex ( $ tmpInfo [ 'lastColumnIndex' ] + 1 ) ; $ worksheetInfo [ ] = $ tmpInfo ; } } return $ worksheetInfo ; }
Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns).

@param string $pFilename

@return array
Return worksheet info ( Name Last Column Letter Last Column Index Total Rows Total Columns ) .