Ячейки Regex и Excel - PullRequest
       13

Ячейки Regex и Excel

1 голос
/ 18 июля 2009

Существует библиотека с открытым исходным кодом .NET, которая называется NPOI и позволяет управлять файлами Excel. К сожалению, их функция ShiftRows не корректирует ссылки на ячейки в формулах.

Поэтому мне нужно создать шаблон регулярных выражений для их обновления. Возьмем, например, ячейку, содержащую следующую формулу:

= (B7 / C9) * (A10-B4)

Я бы хотел увеличить любые ссылки на строки на 1, став таким образом

= (B8 / C10) * (A11-B5)

По сути, мне просто нужен шаблон, который будет извлекать числа в "MatchCollection". Я могу сделать все остальное.

Может кто-нибудь помочь?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 июля 2009

Вы должны быть очень осторожны, используя регулярные выражения для этой цели. Формулы Excel могут стать очень сложными, особенно с пользовательскими функциями или когда функции применяются к диапазонам. NPOI содержит библиотеку оценки Формулы, и я думаю, вам также следует обратить на это внимание, особенно если электронные таблицы находятся вне вашего контроля.

0 голосов
/ 18 июля 2009

Посмотрите на мой ответ на другой вопрос: Какое регулярное выражение может выбирать имена столбцов Excel в формуле в C #?

В этом ответе я сопоставляю формулы и включаю код для увеличения номера ячейки (и именования столбцов). Кроме того, выполните поиск по именованию столбцов Excel здесь, и вы найдете другие способы получения сгенерированных или увеличенных имен. Возможно, я мог бы сократить код IncrementColumn MatchEvaluator, используя один из этих методов, но это то, что я придумал в то время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...