В данном уроке мы научимся взаимодействовать с таблицами Excel. А именно, мы научимся получать данные из ячеек таблицы, научимся обрабатывать эти данные, и рассмотрим пример, как можно выводить уже обработанную информацию в браузере.
Небольшое предисловие и пояснение к данному уроку.
С наступлением холодов, в 2022 году, российская федерация начала обстреливать объекты критической инфраструктуры Украины. В результате этого, электростанции вынуждены были ввести график почасового отключения электроэнергии.
Улицы были разделены на 3 очереди. При невысокой нагрузке на электростанции, электричество подавалось по следующему принципу: одна очередь, без электричества, две – с электричеством. То есть если, например, на улицах, которые входят в первую очередь света нет, то улицы второй и третьей очереди со светом. Затем, улицы первой и третьей очереди со светом, а вторая очередь без света. Потом третья очередь без света, а первая и вторая со светом.
При более-менее меньшей интенсивности обстрелов, график был следующим: 4 часа электричество подаётся, а 2 два часа – нет.
При интенсивных обстрелах и попаданиях в электростанции, свет отключали по следующей схеме: 2 часа электричество подаётся, 4 часа – нет. То есть приходилось отключать две очереди одновременно. И тогда принцип был такой, если у первой очереди свет есть, то вторая и третья – без света. Если у второй свет есть, то первая и третья без света. Если у третьей свет есть, то первая и вторая без света.
Для удобства, был составлен график на весь месяц и можно было легко посмотреть, когда и у кого не будет подачи электроэнергии.
Но, для большего удобства, я решил написать ещё и небольшую программу на PHP, с помощью которой человек мог бы выбрать интересующую его дату и посмотреть какой график отключения будет именно в этот день.
Из этой задумки и получился хороший материал для урока по работе с таблицами Excel.
Библиотека PhpSpreadsheet
Для создания программы, мне понадобилась библиотека PhpSpreadsheet:
- Скачать PhpSpreadsheet можно тут https://github.com/PHPOffice/PhpSpreadsheet
- Официальный сайт и документация тут https://phpspreadsheet.readthedocs.io/en/latest/
PhpSpreadsheet – это библиотека, написанная на чистом PHP, которая предлагает набор классов, позволяющих читать и записывать разные форматы файлов электронных таблиц, например Excel и LibreOffice Calc.
Получение данных из Excel
<form method="POST">
<select name="user_date" required="required">
<option value="">Оберіть дату</option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<hr>
<input type="submit" name="grafik1" value="Графік -4+2 (таблиця)" />
<input type="submit" name="grafik2" value="Графік -2+4 (таблиця)" />
<input type="submit" name="grafik3" value="Графік -4+2 (список)" />
<input type="submit" name="grafik4" value="Графік -2+4 (список)" />
<input type="submit" name="allList" value="Обидва варіанти" />
</form>
<hr>
<form method="POST">
<input type="submit" name="grafikToday" value="Графік на сьогодні (список)" />
<input type="submit" name="grafikTomorrow" value="Графік на завтра (список)" />
</form>
<hr>
<?php
//підключаємо бібліотеку Spreadsheet
require_once 'PhpSpreadsheet-master/src/PhpSpreadsheet/Spreadsheet.php';
require 'PhpSpreadsheet-master/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
$excel = \PhpOffice\PhpSpreadsheet\IOFactory::load('grafik.xls');
//Виводимо графік 4 години немає світла, 2 години – є
if(isset($_POST['grafik1'])) {
tableFourTwo();
}
//Виводимо графік 2 години немає світла, 4 години – є
if(isset($_POST['grafik2'])) {
tableTwoFour();
}
//Виводимо графік 4 години немає світла, 2 години – є (списком)
if(isset($_POST['grafik3'])) {
listFourTwo();
}
//Виводимо графік 2 години немає світла, 4 години – є (списком)
if(isset($_POST['grafik4'])) {
listTwoFour();
}
//Виводимо обидва графіки списком
if(isset($_POST['allList'])) {
listFourTwo();
listTwoFour();
}
//Виводимо графік на сьогодні
if(isset($_POST['grafikToday'])) {
listToday();
}
//Виводимо графік на завтра
if(isset($_POST['grafikTomorrow'])) {
listTomorrow();
}
// Функція виводу графіка за схемою 4 години немає світла, 2 години – є (у вигляді таблиці)
function tableFourTwo() {
$excel = \PhpOffice\PhpSpreadsheet\IOFactory::load('grafik.xls');
$userDate = $_POST['user_date']; // отримуємо дату що обрав користувач в випадаючому списку
// цикл for (присвоюємо змінній DateTurtOf значення 3 бо колонки з годинами починаються з 3-ї
// потім проходимо по колонках і вибираємо час відключення та для якої черги цей час діє
// результат виводимо на екран
echo '<h2>⚡Графік ВІДКЛЮЧЕННЯ електроенергії<br>на ' . $userDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br><table width="600" border="1"><tr><td>Перша черга</td><td>Друга черга</td><td>Третя черга</td></tr>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
// перевірка і розподіл по чергам
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo '<tr><td>' . $timeOf . '</td><td>' . '-----' . '</td><td>' . $timeOf;
} else if ($cherga == '2 (та 1) черга') {
echo '<tr><td>' . $timeOf . '</td><td>' . $timeOf . '</td><td>' . '-----';
} else if ($cherga == '3 (та2) черга') {
echo '<tr><td>' . '-----' . '</td><td>' . $timeOf . '</td><td>' . $timeOf;
}
$DateTurtOf = $DateTurtOf++;
}
echo '</td></tr></table>'; // закінчуємо таблицю з відключенням
echo '<h2>⚡Графік ВКЛЮЧЕННЯ електроенергії<br>на ' . $userDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br><table width="600" border="1"><tr><td>Перша черга</td><td>Друга черга</td><td>Третя черга</td></tr>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo '<tr><td>' . '-----' . '</td><td>' . $timeOf . '</td><td>' . '-----';
} else if ($cherga == '2 (та 1) черга') {
echo '<tr><td>' . '-----' . '</td><td>' . '-----' . '</td><td>' . $timeOf;
} else if ($cherga == '3 (та2) черга') {
echo '<tr><td>' . $timeOf . '</td><td>' . '-----' . '</td><td>' . '-----';
}
$DateTurtOf = $DateTurtOf++;
}
echo '</td></tr></table>';
}
// Функція виводу графіка за схемою 2 години немає світла, 4 години – є (у вигляді таблиці)
function tableTwoFour() {
$excel = \PhpOffice\PhpSpreadsheet\IOFactory::load('grafik.xls');
$userDate = $_POST['user_date'];
echo '<h2>⚡Графік ВІДКЛЮЧЕННЯ електроенергії<br>на ' . $userDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br><table width="600" border="1"><tr><td>Перша черга</td><td>Друга черга</td><td>Третя черга</td></tr>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo '<tr><td>' . $timeOf . '</td><td>' . '-----' . '</td><td>' . '-----';
} else if ($cherga == '2 (та 1) черга') {
echo '<tr><td>' . '-----' . '</td><td>' . $timeOf . '</td><td>' . '-----';
} else if ($cherga == '3 (та2) черга') {
echo '<tr><td>' . '-----' . '</td><td>' . '-----' . '</td><td>' . $timeOf;
}
$DateTurtOf = $DateTurtOf++;
}
echo '</td></tr></table>';
echo '<h2>⚡Графік ВКЛЮЧЕННЯ електроенергії<br>на ' . $userDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br><table width="600" border="1"><tr><td>Перша черга</td><td>Друга черга</td><td>Третя черга</td></tr>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo '<tr><td>' . '-----' . '</td><td>' . $timeOf . '</td><td>' . $timeOf;
} else if ($cherga == '2 (та 1) черга') {
echo '<tr><td>' . $timeOf . '</td><td>' . '-----' . '</td><td>' . $timeOf;
} else if ($cherga == '3 (та2) черга') {
echo '<tr><td>' . $timeOf . '</td><td>' . $timeOf . '</td><td>' . '-----';
}
$DateTurtOf = $DateTurtOf++;
}
echo '</td></tr></table>';
}
// Функція виводу графіка за схемою 4 години немає світла, 2 години – є (у вигляді списка)
function listFourTwo() {
$excel = \PhpOffice\PhpSpreadsheet\IOFactory::load('grafik.xls');
$userDate = $_POST['user_date'];
echo '<h2>⚡Графік ВІДКЛЮЧЕННЯ електроенергії<br>на ' . $userDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 4 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 2 ГОДИНИ – Є, ТО СВІТЛА НЕ БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '2 (та 1) черга' or $cherga == '3 (та2) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<h2>⚡Графік ВКЛЮЧЕННЯ електроенергії<br>на ' . $userDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 4 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 2 ГОДИНИ – Є, ТО СВІТЛО БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
}
// Функція виводу графіка за схемою 2 години немає світла, 4 години – є (у вигляді списка)
function listTwoFour() {
$excel = \PhpOffice\PhpSpreadsheet\IOFactory::load('grafik.xls');
$userDate = $_POST['user_date'];
echo '<h2>⚡Графік ВІДКЛЮЧЕННЯ електроенергії<br>на ' . $userDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 2 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 4 ГОДИНИ – Є, ТО СВІТЛА НЕ БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<h2>⚡Графік ВКЛЮЧЕННЯ електроенергії<br>на ' . $userDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 2 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 4 ГОДИНИ – Є, ТО СВІТЛО БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга' or $cherga == '1 (та 3) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($userDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
}
// Вивід графіка на сьогодні
function listToday() {
$curDate = date('j'); // поточна дата (тільки число, без нуля на початку)
$excel = \PhpOffice\PhpSpreadsheet\IOFactory::load('grafik.xls');
echo '<h2>⚡Графік ВІДКЛЮЧЕННЯ електроенергії<br>на ' . $curDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 4 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 2 ГОДИНИ – Є, ТО СВІТЛА НЕ БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '2 (та 1) черга' or $cherga == '3 (та2) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<hr><h2>⚡Графік ВКЛЮЧЕННЯ електроенергії<br>на ' . $curDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 4 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 2 ГОДИНИ – Є, ТО СВІТЛО БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<hr><h2>⚡Графік ВІДКЛЮЧЕННЯ електроенергії<br>на ' . $curDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 2 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 4 ГОДИНИ – Є, ТО СВІТЛА НЕ БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<hr><h2>⚡Графік ВКЛЮЧЕННЯ електроенергії<br>на ' . $curDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 2 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 4 ГОДИНИ – Є, ТО СВІТЛО БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга' or $cherga == '1 (та 3) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($curDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
}
// Вивід графіка на завтра
function listTomorrow() {
$tomDate = date('j')+1; // поточна дата плюс 1 щоб отримати завтрішню дату
$excel = \PhpOffice\PhpSpreadsheet\IOFactory::load('grafik.xls');
echo '<h2>⚡Графік ВІДКЛЮЧЕННЯ електроенергії<br>на ' . $tomDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 4 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 2 ГОДИНИ – Є, ТО СВІТЛА НЕ БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '2 (та 1) черга' or $cherga == '3 (та2) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<hr><h2>⚡Графік ВКЛЮЧЕННЯ електроенергії<br>на ' . $tomDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 4 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 2 ГОДИНИ – Є, ТО СВІТЛО БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<hr><h2>⚡Графік ВІДКЛЮЧЕННЯ електроенергії<br>на ' . $tomDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 2 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 4 ГОДИНИ – Є, ТО СВІТЛА НЕ БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<hr><h2>⚡Графік ВКЛЮЧЕННЯ електроенергії<br>на ' . $tomDate . ' грудня⚡</h2>❗Увага❗<br>⚠️Графік ОРІЄНТОВНИЙ. Це означає, що він може НЕ діяти (і скоріш за все НЕ ДІЯТИМЕ) при застосуванні аварійних відключень, або у разі якщо НЕК Укренерго зменшить ліміт потужності в області.<br><br>📌ЯКЩО БУДЕ ДІЯТИ ГРАФІК 2 ГОДИНИ НЕМАЄ ЕЛЕКТРОЕНЕРГІЇ, 4 ГОДИНИ – Є, ТО СВІТЛО БУДЕ В ТАКІ ГОДИНИ:<br>1️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>2️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '3 (та2) черга' or $cherga == '1 (та 3) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
echo '<br>3️⃣ черга:<br>';
for ($DateTurtOf=3; $DateTurtOf<14; $DateTurtOf++) {
$timeOf = $excel->getActiveSheet()->getCellByColumnAndRow(1, $DateTurtOf)->getValue();
$cherga = $excel->getActiveSheet()->getCellByColumnAndRow($tomDate+2, $DateTurtOf)->getValue();
if ($cherga == '1 (та 3) черга' or $cherga == '2 (та 1) черга') {
echo $timeOf . '<br>';
}
$DateTurtOf = $DateTurtOf++;
}
}
?>
