2012-06-15 5 views
0

J'ai une méthode dans C# Form Application pour renvoyer des données d'Excel lorsqu'il reçoit une plage.Calculer la plage Excel lorsque l'utilisateur sélectionne les numéros de ligne et les numéros de colonne

... 
Microsoft.Office.Interop.Excel.Worksheet aWs = aWb.Worksheets[sheetName] as Microsoft.Office.Interop.Excel.Worksheet; 

      Range headers = aWs.get_Range(range1, range2); 

      object[,] values = headers.get_Value(hmissing) as object[,]; 
... 

Ici range1 et range2 est des valeurs de cellules. Ex: A1, B7

Je souhaite calculer ce range1 et range2 lorsque l'utilisateur sélectionne des numéros de ligne et des numéros de colonne.

If user select Rows ={All} and columns = {A,B,C} => result={A1,C265} 
If user select Rows ={1,2,3,4} and columns = {A,B,C} => result={A1,C4} 
If user select Rows ={1,2,4,5} and columns = {A,B,C} => result={A1,C2} {A4,C5} 
If user select not matching rows and columns => result={null} 

Comment est-ce que je peux faire ceci? Pouvons-nous implémenter une méthode ou Existe-t-il une API fournie par Excel pour cela?

Merci.

Répondre

0

Essayez d'utiliser LinqToexcel il vous aidera à résoudre ce problème linqtoexcel

espérons que cette aide

+0

Il n'a pas une méthode que ce que je voulais. :( – devan

1

Si ce que vous voulez faire est de formules Recalculer Excel a plusieurs méthodes de calcul.
Pour calculer une plage spécifique, utilisez Range.Calculate ou Range.CalculateRowMajorOrder.
Notez que si Excel est en mode de calcul automatique, cela ne devrait pas être nécessaire car toutes les formules sont automatiquement recalculées si nécessaire.

Questions connexes