2009-07-18 7 views
1

Il existe une bibliothèque .NET opensource appelée NPOI qui vous permet de manipuler des fichiers Excel. Malheureusement, leur fonction ShiftRows n'ajuste aucune référence de cellule dans les formules. Par conséquent, je dois créer un motif regex pour les mettre à jour. Prenons par exemple une cellule contenant la formule suivante:Cellules Regex et Excel

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

je voudrais heurter les références de ligne de 1 devenant ainsi

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

Fondamentalement, j'ai juste besoin d'un modèle qui va extraire les nombres dans une "MatchCollection". Je peux faire le reste.

Quelqu'un peut-il aider?

Merci.

Répondre

0

Jetez un oeil à ma réponse à une autre question: Which regular expression is able to select excel column names in a formula in C#?

Dans cette réponse, je correspondent à des formules et inclure le code pour augmenter le nombre de cellules (et la désignation de la colonne). En outre, effectuez une recherche sur la dénomination des colonnes Excel ici et vous trouverez d'autres façons d'obtenir les noms générés ou incrémentés. Je pourrais probablement raccourcir le code de IncrementColumn MatchEvaluator en utilisant une de ces méthodes mais c'est ce que j'ai trouvé à l'époque.

0

Vous devriez être très prudent en utilisant des expressions régulières à cette fin. Les formules Excel peuvent devenir très complexes, en particulier avec les fonctions définies par l'utilisateur ou lorsque les fonctions s'appliquent aux plages. NPOI contient une bibliothèque d'évaluation Formula et je pense que vous devriez également y jeter un coup d'œil - surtout si les feuilles de calcul sont hors de votre contrôle.

+0

En fait, je vais avoir le contrôle de la feuille de calcul. Je vais exporter des données dans un "template.xls" afin qu'il n'y ait pas de surprises. Merci pour votre réponse. – Lenard

Questions connexes