Показать сообщение отдельно
Старый 23.04.2018, 14:32   #1  
BuzCom is offline
BuzCom
Участник
 
59 / 17 (1) ++
Регистрация: 10.08.2017
Angry Вывод формулы в Excel
Нужно вывести в Excel формулу с условиями. Вывод делается через dotnet Microsoft.Dynamics.Nav.OpenXml.Spreadsheet.WorksheetWriter. Простые формулы выводятся без проблем, а с условиями (SUMIF, SUMIFS) - падает с ошибкой xml. После изучения вопроса оказалось, что действительно условные формулы поддерживаются криво, и рекомендуется использовать комбинации SUM(IF...
Вот здесь и заковырка. Т.к. формула по диапазону строк, то в экселе это формула массива, и ели вводить её руками, то в конце нужно нажать ctrl+shift+enter. тогда формула обрамляется фигурными скобками и работает как надо:
{=СУММ(ЕСЛИ(M11:M14<>0;Q11:Q14;ЕСЛИ(L11:L14<>0;Q11:Q14;ЕСЛИ(K11:K14<>0;Q11:Q14;0))))}
Как заставить так же выводится из NAV ? Метод SetCellFormula, похоже, не понимает фигурные скобки, а без них формула дает ошибку. И в том, и в другом случае имеем системную ошибку "Исключение из HRESULT: 0x800A03EC".