PhpSpreadsheet - чтение листа Excel и отображение только тех строк, которые соответствуют вводу из HTML-формы - PullRequest
0 голосов
/ 14 октября 2019

Я только начал использовать PhpSpreadsheet, и с помощью следующего кода я смог отобразить весь лист, когда нажал кнопку отправки. Похоже, я не могу понять, как просто искать строку из поля ввода и отображать только те строки, которые содержат строку поиска.

<form action="search.php" method="post">
            <div class="read_Search">
                <fieldset class="queryFieldset">
                    <legend style="color:white;">TOOLS:</legend>
                    <div class="input-group mb-3">
                        <a href="https://test.tool/search.php"><button type="button" class="btn btn-primary">Reset Form</button></a>
                    </div>
                </fieldset>
                <fieldset class="queryFieldset">
                    <legend style="color:white;">Search Query:</legend>
                    <div class="input-group mb-3">
                        <div class="input-group-prepend">
                            <span class="input-group-text" id="basic-addon1">Search</span>
                        </div>
                        <input type="text" name="search" class="form-control" placeholder="Enter Search Term" aria-label="Search Query" aria-describedby="basic-addon1">
                        <input type="submit" name="submitSearch" value="Submit" class="btn btn-primary">
                    </div>
                </fieldset>
            </div>
        </form>
        <?php
        if (isset($_POST['submitSearch'])) {
            $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
            $reader->setReadDataOnly(TRUE);
            $spreadsheet = $reader->load("includes/data/currentSearchdata.xlsx");

            $worksheet = $spreadsheet->getActiveSheet();

            echo '<div class="container searchcontainer"><table>' . PHP_EOL;
            foreach ($worksheet->getRowIterator() as $row) {
                echo '<tr>' . PHP_EOL;
                $cellIterator = $row->getCellIterator();
                $cellIterator->setIterateOnlyExistingCells(FALSE); // This loops through all cells,
                //    even if a cell value is not set.
                // By default, only cells that have a value
                //    set will be iterated.
                foreach ($cellIterator as $cell) {
                    echo '<td>' .
                        $cell->getValue() .
                        '</td>' . PHP_EOL;
                }
                echo '</tr>' . PHP_EOL;
            }
            echo '</table></div>' . PHP_EOL;
        } else { }
        ?>
    </div>
...