2009-07-18 113 views
1

有一个称为NPOI的.NET开放源代码库,允许您操作Excel文件。不幸的是,他们的ShiftRows函数不会调整公式中的任何单元格引用。正则表达式和Excel单元格

因此,我需要创建一个正则表达式模式来更新它们。采取例如包含下式的单元:

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

我想凸点由1任一行的引用从而成为

=(B8/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 2009-07-18 07:02:08