@zubrrap
Новичок

Как запретить вычисления phpexcel?

Доброго времени суток.
Обрабатываю данные через phpexcel и сохраняю данные в бд.
Проблема возникла когда phpexcel посчитал, что в ячейке формула и из за этого ошибка 300.
Как отключить вычисления? Или сказать что там все строковые значения?
Что и куда нужно дописать?
Вот часть кода
$excel = PHPExcel_IOFactory::load($_FILES['upload']['tmp_name']);
$data = array();
foreach($excel->getWorksheetIterator() as $worksheet) {
	  $data = $worksheet->toArray() //РУГАЕТСЯ НА ЭТУ СТРОЧКУ
}

Заранее спасибо за помощь.
  • Вопрос задан
  • 146 просмотров
Решения вопроса 2
@zubrrap Автор вопроса
Новичок
Может поможет кому
Можно под свои нужды переписать

$xls =PHPExcel_IOFactory::load($_FILES['upload']['tmp_name']); //загружаем xlsx файл
$xls->setActiveSheetIndex(0);
$sheet = $xls->getActiveSheet();
$objEx = []; //многомерный массив из строк таблицы
 for ($i = 1; $i <= $sheet->getHighestRow(); $i++) { // получаем строку 
        $nColumn = PHPExcel_Cell::columnIndexFromString( 
        $sheet->getHighestColumn());
        $obj = []; //массив строк
        
    for ($j = 0; $j < 17; $j++) { //получаем каждую ячейку
        
        $value = $sheet->getCellByColumnAndRow($j, $i)->getValue();
        $obj []= $value; // записываем ячейку в массив
        
    }
    $objEx[] = $obj; //записываем строку в массив
}
Ответ написан
glaphire
@glaphire Куратор тега PHP
PHP developer
Судя по рассуждениям, можно выключить вычисления на уровне физического файла (если есть возможность просто открыть файл вручную, исправить и сохранить).
Если проходить по файлу поячеечно (worksheet - get active sheet - get cell - get value), то будете гарантировано получать сырой текст, потому что для вычисления нужно обращаться к ячейке через getCalculatedValue().
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы