2017-03-08 96 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