【问题标题】:Regex and Excel Cells正则表达式和 Excel 单元格
【发布时间】:2009-07-18 05:47:15
【问题描述】:

有一个名为 NPOI 的 .NET 开源库,可让您操作 Excel 文件。不幸的是,他们的 ShiftRows 函数不会调整公式中的任何单元格引用。

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

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

我想将任何行引用增加 1 从而变为

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

基本上,我只需要一个将数字提取到“MatchCollection”中的模式。剩下的我可以做。

谁能帮忙?

谢谢。

【问题讨论】:

    标签: c# .net regex


    【解决方案1】:

    看看我对另一个问题的回答:Which regular expression is able to select excel column names in a formula in C#?

    在该答案中,我匹配公式并包含代码以增加单元格编号(和列命名)。此外,在此处搜索 Excel 列命名,您将找到其他方法来生成或增加名称。我可能可以使用其中一种方法缩短 IncrementColumn MatchEvaluator 的代码,但那是我当时想出的。

    【讨论】:

      【解决方案2】:

      为此,您应该非常小心地使用正则表达式。 Excel 公式可能会变得非常复杂,尤其是使用用户定义的函数或将函数应用于范围时。 NPOI 包含一个公式评估库,我认为您也应该看看这个 - 特别是如果电子表格超出您的控制范围。

      【讨论】:

      • 实际上,我将控制电子表格。我会将一些数据导出到“template.xls”中,所以不会有任何意外。感谢您的回复。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      相关资源
      最近更新 更多