Как вы можете оценить строковое представление формулы / параметра в POI Apache / NPOI напрямую - PullRequest
0 голосов
/ 04 мая 2020

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

. Я на шаге, где я проанализировал формулы и извлек параметры, использованные для функции (выполненные подсчетом скобок). Но я наткнулся на препятствие. Я не могу понять, как заставить NPOI / POI Apache оценить вещи. Кажется, требует, чтобы все было сделано внутри клетки. Что невозможно в этом сценарии. (поскольку это параметры, а не формулы ячеек, поэтому у них нет ячейки, в которой они должны оцениваться)

Существует класс OperandResolver, который, кажется, находится в правильных строках, но ему нужен тип ValueEval как его вклад, который я не могу понять вообще. В настоящее время я могу получить параметры только в виде строк. Как "A1", "0.9", "SomeOtherFunction (...)" и т. Д. c. Это то, что у меня есть.

Может кто-нибудь помочь мне разобраться, как это сделать?

В основном мне нужно что-то вроде

pseudocode:    
var result = Evaluate_Formula_String(string formula, var Contextual_Information_eg_current_Worksheet)

Где результат будет содержать либо строку, либо что-то, что легко преобразуется в строка

1 Ответ

0 голосов
/ 04 мая 2020

Кажется, что вам нужна простая функция Application.Evaluate. Он берет строку и оценивает ее.

Справочная страница: https://docs.microsoft.com/en-us/office/vba/api/excel.application.evaluate

...