Это мой первый пост на этом форуме, будьте терпеливы со мной, если можете;)
Прежде всего, контекст: я разрабатываю веб-страницу, которая импортирует файл Excel (.xlsx) с двумя листами, и редактирую первый с некоторыми данными из базы данных. Я использую LaravelExcel и столкнулся с проблемой с формулой.
Я пытаюсь написать существующую формулу в ячейке. Это мой код до сих пор:
Excel::load('files/template_v02.xlsx', function($reader) use ($clients) {
$sheet = $reader->setActiveSheetIndex(0);
$sheet->setCellValue('A7', "=IFNA(VLOOKUP(\$C7;$'Billable items'.\$C$58:\$D$61;2;0); 0)+IF(D7=\"Yes\"; $'Billable items'.\$D$63;0)");
})->store('xlsx', public_path('files/test'));
Проблема заключается во втором ‘$’, непосредственно перед первым вызовом ‘Billable items’, который является именем второго листа. Я не понимаю, почему этот символ генерирует этот результат, когда я открываю измененный файл:
=IFNA(VLOOKUP($C7;$'Billable items'.$C$58:$D$61;2;0); 0)+IF(D7="Yes"; $'Billable items'.$D$63;0)))
В конце формулы появляются две скобки (по одной для каждого вызова на втором листе с ‘$’) в ячейке, и я не могу понять, почему (я кодирую в UTF-8).
У кого-то есть идея, возможно?
Заранее спасибо !
Забудьте ответить, когда я выясню, в чем проблема, если некоторые люди получат такую же проблему:
Во-первых, символ доллара перед именем листа
$«Оплачиваемые предметы»
Не должно быть там, LaravelExcel не нравится, не знаю почему.
И, наконец, реальная проблема заключалась в том, что функция IFNA в Excel была заменена на IFERROR, в этом случае IFNA, похоже, не работает с этой библиотекой.
Других решений пока нет …