C# Interop 使用特定列的数据获取最后一行
C# Interop get last row with data from a specific column
我试图从特定列中获取最后一行的数据,当 运行 我的代码时出现以下错误:
Unable to get the CountA property of the WorksheetFunction class
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]);
也尝试了下面的代码,但是returns:
Exception from HRESULT: 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;
我知道这是几年前的事了,但我只是想把它放在这里。接受的答案可能需要一些调整,因为它对我来说不太管用。所以我将其修改为以下内容:
var usedRows = wsConfig.Range["I" + wsconfig.Rows.Count.ToString()].End[Excel.XlDirection.xlUp]
我试图从特定列中获取最后一行的数据,当 运行 我的代码时出现以下错误:
Unable to get the CountA property of the WorksheetFunction class
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]);
也尝试了下面的代码,但是returns:
Exception from HRESULT: 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
获取列中最后使用的行(例如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;
我知道这是几年前的事了,但我只是想把它放在这里。接受的答案可能需要一些调整,因为它对我来说不太管用。所以我将其修改为以下内容:
var usedRows = wsConfig.Range["I" + wsconfig.Rows.Count.ToString()].End[Excel.XlDirection.xlUp]