2017-03-08 41 views
0

我怎样才能得到可见行的总数?C#的Excel互操作数可见行

我尝试以下:
1)

Excel.Range range; 
range = ws.UsedRange; 

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

rCnt = 1执行之后

2)

var countRows = ws.Rows.Count; 

countRows = 1048576执行

两个rCntcountRows返回前人的精力31 - 是可见

+1

定义可见 - 出类拔萃,所有的行是可见的,除非你特意把它们藏起来,或者你的意思是“上屏幕”? – BugFinder

+0

当我打开一个Excel工作簿中只有31行屏幕上 – Valip

+0

好可见所以它不可见的细胞,但在屏幕上的人的数量 - Excel是告诉你有多少可见.. – BugFinder

回答

0

使用VisibleRange

返回表示是在窗口或窗格 可见细胞的范围内的范围对象的行>总数。如果一列或行部分 可见,它包含在范围内。

例如,具有确定的

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]; 

那么你可以做

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

你能不能也请告诉我如何我应该定义'xlApp'? – Valip

+0

更新按照您的要求 – 2017-03-08 14:07:54

+0

我越来越不设置到object.'的实例上'变种test''对象引用...这是因为我试图压制外的一个按钮后,得到总的行ThisAddIn类? – Valip