Задать вопрос

Как выбрать данные из excel если в некоторых ячейках пусто?

Все очень просто, иду по экселю все нормально до момента как встречается пустая ячейка, как только он ловит пустую ячейку получаю ошибку, как это обойти, хотя бы вместо ошибки получать null? Да я использую библиотеку PhpSpreadsheet

Uncaught Error: Call to a member function getValue() on null in


for ($row = 2; $row <= $cells->getHighestRow(); $row++) {
    for ($col = 'A'; $col <= 'M'; $col++) {
         if ($col == 'A') {
            $tmp= $cells->get($col . $row)->getValue();
        }
    }
  • Вопрос задан
  • 261 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
hint000
@hint000
у админа три руки
Вообще-то я не кодер, но из любопытства загуглил и вижу в этой библиотеке две функции ISNUMBER, ISBLANK - разве не оно?
Ответ написан
@AndrewDnt
Скорее всего, вы обходите коллекцию $cells - заполненные ячейки.
А вам надо делать обход коллекции $worksheet - все ячейки страницы

Вот пример из phpspreadsheet
=========================================

$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
$reader->setReadDataOnly(TRUE);
$spreadsheet = $reader->load("test.xlsx");

$worksheet = $spreadsheet->getActiveSheet();
// Get the highest row and column numbers referenced in the worksheet
$highestRow = $worksheet->getHighestRow(); // e.g. 10
$highestColumn = $worksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn); // e.g. 5

echo '
' . $value . '
' . PHP_EOL;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽