解決すべき問題の 1 つとして、Excel 数式の範囲値を同等のセル参照に置き換える必要があります。たとえば、Excel 数式がある場合は次のようになります。
=合計(F10:F14)
私はそれを置き換える必要があります:
= Sum(F10,F11,F12,F13,F14)。
見つけるのに役立つ正規表現を一致させようとしています
- 「Sum」と「:」を含むパターンで 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)、つまり、式内に複数の範囲演算子が含まれる場合
上記の結果を達成する方法を見つけるのを手伝ってください。
乾杯、アニル