2017-03-08 1 views
0

Comment puis-je obtenir le nombre total de lignes visibles?C# Excel Interop compte les lignes visibles

J'ai essayé les éléments suivants:
1)

Excel.Range range; 
range = ws.UsedRange; 

int rCnt = 0; 
rCnt = range.Rows.Count; 

rCnt = 1 après l'exécution

2)

var countRows = ws.Rows.Count; 

countRows = 1048576 après l'exécution

deux rCnt et countRows Sould retour 31 -> nombre total de lignes qui sont visibles

+1

définissent visible - pour exceller, toutes les lignes sont visibles, sauf si vous les avait cachés spécifiquement, ou voulez-vous dire « sur écran"? – BugFinder

+0

Lorsque j'ouvre un classeur Excel, il n'y a que 31 lignes visibles à l'écran – Valip

+0

Ok donc ce n'est pas le nombre de cellules visibles mais celles à l'écran - Excel vous indique combien sont visibles. – BugFinder

Répondre

0

utilisation VisibleRange

Renvoie un objet Range qui représente la plage de cellules qui sont visible dans la fenêtre ou le panneau. Si une colonne ou une ligne est partiellement visible, elle est incluse dans la plage.

Par exemple, après avoir défini

var xlApp = new Microsoft.Office.Interop.Excel.Application(); 
if (xlApp == null) 
{ 
    Console.WriteLine("EXCEL could not be started. Check that your office installation and project references are correct."); 
    return; 
} 
xlApp.Visible = true; 

var wb = xlApp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); 
var ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1]; 

alors vous pouvez faire

var test = xlApp.ActiveWindow.VisibleRange.Rows.Count; 
+0

Pouvez-vous aussi me dire comment je devrait définir le 'xlApp'? – Valip

+0

Mise à jour selon votre demande –

+0

Je reçois 'Référence de l'objet non défini sur une instance d'un objet.' Sur 'var test' ... cela se produit parce que j'essaie d'obtenir le nombre total de lignes après avoir appuyé sur un bouton Cette classe AddAddIn? – Valip