В одной из моих проблем, которые необходимо решить, мне нужно подставить значения своего диапазона в Формуле Excel с их эквивалентными ссылками на ячейки, то есть, например, если у меня есть формула Excel:Регулярное выражение в соответствии с формулой Excel
= Sum (F10: F14)
Я должен заменить его:
= Сумма (F10, F11, F12, F13, F14).
Я пытаюсь соответствовать регулярные выражения, которые помогают мне найти
- если формула Excel была определена с рисунком, который включает в себя: «Сумма» и «:»
- Чтобы извлечь клетки которые включены в диапазон, как в F10: F14
Каким-то образом, я застрял в пункте 1 :-)
Для, этого я создал следующий шаблон:
Regex formulaMatcher = new Regex(@"=*SUM\([\w]*[\w,]*[\w]+:[\w]+[\w]*[\w,]*\)*");
foreach (Match m in formulaMatcher.Matches("=SUM(F55,F151:F159)"))
m.Value.Dump();
Теперь, вышеуказанный шаблон прекрасно работает для формул:
// =SUM(F15,F25,F31:F35)
// =SUM(F10:F12,F26,F31)
// =SUM(F45,F55,F61:F63,F40)
// =F14-SUM(F16:F17)
// =SUM(F35:F37)
// =SUM(F10:F13)-F11
// =SUM(F27:F29)/3
// =F19-F21+SUM(F22:F23)
// =ROUND(F43-SUM(F23:F42),2)
// =SUM(F174:F178)+F134+F120+F97
Но она стенает: SUM (F81: F89, F105: F113, F128: F135), то есть для случаи, связанные с операторами нескольких диапазонов в формуле
Просьба помочь мне узнать, как я мог бы достичь вышеуказанного результата?
Приветствия, Anil
Я предполагаю, что это гонорары - иначе это очень странный вопрос – brettdj