Нужна помощь в php с PHPExcel

99
11 января 2022, 20:00

Есть php код, который получает данные из файла s.xlsx используя библиотеку PHPExcel, и выводит их в таблицу для печати ценников с qr-кодами. В каждой секции "class="section" выводится по 88 ценников, чтобы ровно было на листке.

<?php
        require_once "PHPExcel.php";
        $tmpfname = "s.xlsx";
        $excelReader = PHPExcel_IOFactory::createReaderForFile($tmpfname);
        $excelObj = $excelReader->load($tmpfname);
        $worksheet = $excelObj->getSheet(0);
        $lastRow = $worksheet->getHighestRow();
        $page = 88;
        echo '<div class="section">';
        for ($row = 2; $row <= $lastRow; $row++) {
            $t_name = $worksheet->getCell('A'.$row)->getValue();
            $t_price = $worksheet->getCell('B'.$row)->getValue();
            $t_code = $worksheet->getCell('C'.$row)->getValue();
            $t_number = $worksheet->getCell('D'.$row)->getValue();
            if (!empty($t_name) && $t_number <= $page ) {
                echo "
                <table>",'
                  <tr>
                    <td class="name">', $t_name, '</td>
                    <td class="price">', $t_price, 'р.', '</td>
                    <td class="image">', "<img src=\"http://qrcoder.ru/code/?$t_code&4&0\" width=\"58\" height=\"58\" border=\"0\" title=\"QR код\">", '</td>
                  </tr>
                </table>';
            } else {
                echo '';
            }
        }
        echo '</div>';
        echo '<div class="section">';
        for ($row = 2; $row <= $lastRow; $row++) {
            $t_name = $worksheet->getCell('A'.$row)->getValue();
            $t_price = $worksheet->getCell('B'.$row)->getValue();
            $t_code = $worksheet->getCell('C'.$row)->getValue();
            $t_number = $worksheet->getCell('D'.$row)->getValue();

            if (!empty($t_name) && $t_number >= $page+1 && $t_number <= $page*2 ) {
                echo '
                <table>
                  <tr>
                    <td class="name">', $t_name, '</td>
                    <td class="price">', $t_price, 'р.', '</td>
                    <td class="image">', "<img src=\"http://qrcoder.ru/code/?$t_code&4&0\" width=\"58\" height=\"58\" border=\"0\" title=\"QR код\">", '</td>
                  </tr>
                </table>';
            } else {
                echo '';
            }
        }
        echo '</div>';
        echo '<div class="section">';
        for ($row = 2; $row <= $lastRow; $row++) {
            $t_name = $worksheet->getCell('A'.$row)->getValue();
            $t_price = $worksheet->getCell('B'.$row)->getValue();
            $t_code = $worksheet->getCell('C'.$row)->getValue();
            $t_number = $worksheet->getCell('D'.$row)->getValue();

            if (!empty($t_name) && $t_number >= $page*2+1 && $t_number <= $page*3 ) {
                echo '
                <table>
                  <tr>
                    <td class="name">', $t_name, '</td>
                    <td class="price">', $t_price, 'р.', '</td>
                    <td class="image">', "<img src=\"http://qrcoder.ru/code/?$t_code&4&0\" width=\"58\" height=\"58\" border=\"0\" title=\"QR код\">", '</td>
                  </tr>
                </table>';
            } else {
                echo '';
            }
        }
        echo '</div>';
        ?>

Хочу добавить колонку с количеством товара и что бы php правильно умножал, сделал вот так

<?php
        require_once "PHPExcel.php";
        $tmpfname = "s.xlsx";
        $excelReader = PHPExcel_IOFactory::createReaderForFile($tmpfname);
        $excelObj = $excelReader->load($tmpfname);
        $worksheet = $excelObj->getSheet(0);
        $lastRow = $worksheet->getHighestRow();
        $page = 88;
        echo '<div class="section">';
        for ($row = 2; $row <= $lastRow; $row++) {
            $t_name = $worksheet->getCell('A'.$row)->getValue();
            $t_price = $worksheet->getCell('B'.$row)->getValue();
            $t_code = $worksheet->getCell('C'.$row)->getValue();
            $t_number = $worksheet->getCell('E'.$row)->getValue();
            $t_quantity = $worksheet->getCell('D'.$row)->getValue();
            for ($i=0; $i < $t_quantity; $i++) {
                if (!empty($t_name) && $t_number <= $page ) {
                        echo "
                        <table>",'
                        <tr>
                            <td class="name">', $t_name, '</td>
                            <td class="price">', $t_price, 'р.', '</td>
                            <td class="image">', "<img src=\"http://qrcoder.ru/code/?$t_code&4&0\" width=\"58\" height=\"58\" border=\"0\" title=\"QR код\">", '</td>
                        </tr>
                        </table>';
                } else {
                    echo '';
                }
            }
        }
        echo '</div>';
        echo '<div class="section">';
        for ($row = 2; $row <= $lastRow; $row++) {
            $t_name = $worksheet->getCell('A'.$row)->getValue();
            $t_price = $worksheet->getCell('B'.$row)->getValue();
            $t_code = $worksheet->getCell('C'.$row)->getValue();
            $t_quantity = $worksheet->getCell('D'.$row)->getValue();
            $t_number = $worksheet->getCell('E'.$row)->getValue();
            for ($i<=$page*2; $i < $t_quantity; $i++) {
                if (!empty($t_name) && $t_number <= $page ) {
                        echo "
                        <table>",'
                        <tr>
                            <td class="name">', $t_name, '</td>
                            <td class="price">', $t_price, 'р.', '</td>
                            <td class="image">', "<img src=\"http://qrcoder.ru/code/?$t_code&4&0\" width=\"58\" height=\"58\" border=\"0\" title=\"QR код\">", '</td>
                        </tr>
                        </table>';
                } else {
                    echo '';
                }
            }
        }
        echo '</div>';
        echo '<div class="section">';
        for ($row = 2; $row <= $lastRow; $row++) {
            $t_name = $worksheet->getCell('A'.$row)->getValue();
            $t_price = $worksheet->getCell('B'.$row)->getValue();
            $t_code = $worksheet->getCell('C'.$row)->getValue();
            $t_quantity = $worksheet->getCell('D'.$row)->getValue();
            $t_number = $worksheet->getCell('E'.$row)->getValue();
            for ($i<=$page*3; $i < $t_quantity; $i++) {
                if (!empty($t_name) && $t_number <= $page ) {
                        echo "
                        <table>",'
                        <tr>
                            <td class="name">', $t_name, '</td>
                            <td class="price">', $t_price, 'р.', '</td>
                            <td class="image">', "<img src=\"http://qrcoder.ru/code/?$t_code&4&0\" width=\"58\" height=\"58\" border=\"0\" title=\"QR код\">", '</td>
                        </tr>
                        </table>';
                } else {
                    echo '';
                }
            }
        }
        echo '</div>';
    ?>

но теперь товар выводится в каждой " class="section" " уже умноженный нп кол-во что указано в ячейке, подскажите, как правильно это можно реализовать?

READ ALSO
Не находит страницу, которая есть. Symfony

Не находит страницу, которая есть. Symfony

Проект на Symfony, я указываю ссылку на страницу, она лежит в проекте, но сайт протестует и выдает 404 ошибку(ссылка указана правильно)

183
Парсер данных с текста

Парсер данных с текста

Спарсил заказы с почты, они в основном в одном формате

108
VK API и формат ссылок

VK API и формат ссылок

Следующий вопрос: как отключить форматирование ссылок, которые отправляет бот? Чтобы ссылка казалось простым текстом, а не как обычно делает...

184
Laravel: смена названия broadcast канала и очередь redis

Laravel: смена названия broadcast канала и очередь redis

Тестировал широковещание ЛаравелПросто по https://laravel

171