2009-07-18 6 views
1

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

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

= (В7/С9) * (А10-В4)

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

= (В8/C10) * (A11-B5)

В принципе, мне нужен шаблон, который будет извлекать номера в «MatchCollection». Я могу сделать все остальное.

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

Спасибо.

ответ

0

Взгляните на мой ответ на другой вопрос: Which regular expression is able to select excel column names in a formula in C#?

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

0

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

+0

Фактически, у меня будет контроль над таблицей. Я буду экспортировать некоторые данные в «template.xls», поэтому сюрпризов не будет. Спасибо за ваш ответ. – Lenard

Смежные вопросы