C#Interop获取来自特定列的数据的最后一行

我试图从特定的列中获取数据的最后一行,并且在运行我的代码时出现以下错误:

无法获取WorksheetFunction类的CountA属性

var xlApp = new Microsoft.Office.Interop.Excel.Application(); var wb = (Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook; var wsConfig = wb.Sheets["Config"]; var usedRows = xlApp.WorksheetFunction.CountA(wsConfig.Columns[9]); 

还尝试了下面的代码,但返回:

来自HRESULT的exception:0x800A03EC

 var usedRows = wsConfig.Range["I1", wsConfig.Cells[1, wsConfig.Rows.Count]].End(Excel.XlDirection.xlDown).Value; 

例:

第一栏
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| |

=> usedRows = 5因为列I上有5行数据

获取列(如A )中最后使用的行的经典excel-vba方法是:

 last = Sheets("Sheet1").Range("A" & Sheets("Sheet1").Rows.Count).End(xlUp).Row 

其中说'从工作表的最后一个可用行开始工作(从版本到版本的变化),直到你用一个值 – 最后一行打到一个单元格。

你可以在你的例子(用于列I )中用c#编写:

 var usedRows = wsConfig.Range["I" + wsConfig.Rows.Count.ToString()].End(Excel.XlDirection.xlUp).Row;