Получение расчитанных данных из phpexcel

153
07 мая 2019, 17:00

Ребята, нужна ваша помощь.

Есть excel, который заполняю через PHPExcel. Сам excel рассчитывает данные по формулам. Есть к примеру формула =ЕСЛИ(E8="";"";((СЕГОДНЯ()+ДАТА(;D61+1;))-E8)/365,25)

Пытаюсь получить рассчитанное значение

require_once ('Classes/PHPExcel/IOFactory.php');
$Excel1 = PHPExcel_IOFactory::load('simple.xlsx');
$Excel1->setActiveSheetIndex(0);
$aSheet = $Excel1->getActiveSheet();
$AgeRepayment = $Excel1->getActiveSheet()->getCell('E9')->getCalculatedValue();
echo $AgeRepayment;

Но в ответ получаю #Value А getOldCalculatedValue() возвращает 0.

Помогите, пожалуйста.

Answer 1

Как с датами решить вопрос пока не совсем понял - пришлось написать функцией. А с другими параметрами решить получилось - ошибка появляется тогда, когда ячейки, используемые в функциях в excel содержат не те значения, например, если у Вас в численной ячейке содержится буква, или как в моём случае "%". Во первых обработал все значения подобные через трим

$LiqP1 = trim($LiqP, '%');

А во-вторых до обработки файла(например пока данные не пришли) - у Вас некоторые поля могут выдавать что-то типа #DIV/0! или #N/A эти поля так же обработал путём

if($InternalScoreS == '#DIV/0!'){
    $InternalScoreS = 0;
}

и

if($DeviationCode1 == '#N/A'){
    $DeviationCode1 = "";
}

И уже нормально, через обычный getCalculatedValue() уже получаем все данные. Надеюсь кому-то поможет.

READ ALSO
Пагинация кастомных постов используя get_posts()

Пагинация кастомных постов используя get_posts()

Пытаюсь сделать пагинацию с помощью встроенной функции the_posts_pagination(); Но она не работает в моем примере

153
Импорт данных и производительность

Импорт данных и производительность

Появилась такая задачка: импорт в БД данных из CSV-файлаCSV представляет собой ненормализованную табличку, он прилетает из другого приложения...

150
PDO ошибка выборки c LIMIT

PDO ошибка выборки c LIMIT

Почему выдает ошибку при таком запросе?

131