PHPExcel 1.8 ВПР «# N / A»

#phpexcel #vlookup

#phpexcel #ВПР

Вопрос:

У меня есть мой лист Excel, и мне нужно распечатать одну ячейку, содержащую VLOOKUP, на экране в таблице HTML. У меня есть следующий код:

 $test = $objPHPExcel->getSheetByName('test')->toArray(null,true,false,true);
$cell = $test[1][B];
echo $cell;
  

Результат всегда: #N / A

Я использую расширения Excel 2013, xlsx и xlsm. Если я попробую любую другую формулу, все будет работать нормально. Только VLOOKUP выдает ошибку для меня. Что я могу сделать?

Комментарии:

1. Существует известная ошибка с кодом VLOOKUP в PHPExcel, которую я в настоящее время пытаюсь идентифицировать и исправить

2. Я пытаюсь заменить VLOOKUP на СООТВЕТСТВИЕ ИНДЕКСУ, и в небольшом списке все работает нормально, но в длинном списке, когда у меня 3000 строк, вычисление возвращает тайм-аут. Я увеличиваю время ожидания до 120, 1000 секунд и долго размышляю, и ничего не происходит.

3. Да, это сложное вычисление, которое займет больше времени для выполнения в большем диапазоне ячеек

Ответ №1:

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

Часть кода, с которым я тестировал:

 $objPHPExcel->getActiveSheet()->setCellValue('A150', '=VLOOKUP(100,EVENT!A30:B130,2,FALSE)');
$test = $objPHPExcel->getActiveSheet()->getCell('A150')->getCalculatedValue();
echo $test;
  

В моем листе Excel столбцы A и B отформатированы как «Общие».
Столбец A представляет собой список целых чисел в порядке возрастания, а столбец B содержит сочетание строк и целых чисел. Я обнаружил, что когда в ячейке столбца B содержится целое число, функция VLOOKUP работает просто отлично и возвращает значение ячейки столбца B. Но когда в ячейке столбца B есть строка, я также просто получаю #N / A