C#和Excel,按名称选择列并获得最高价值

时间:2019-07-04 09:04:15

标签: c# excel

我对C#和excel管理非常陌生。我正在尝试使用Microsoft.Office.Interop.Excel来做到这一点。 我有一个这样的Excel文件:

enter image description here

我想做的就是打开文件,读取一列(即x-com列)并获得最高的数字(当然,如果是数字的话)。

我打开文件

Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(fileName);
Excel.Worksheet xlWorksheet = xlWorkBook.Sheets[sheetNumber];
Excel.Range xlRange = xlWorksheet.UsedRange;

fileNamesheetNumber是此方法的输入。

  • 我怎么只能读一栏?并获得最高的数字?
  • [可选]我不确定Excel.Range到底是什么。如何在控制台上打印?如果我打印xlRange会是什么样子?

1 个答案:

答案 0 :(得分:2)

编辑: 我使用了以下库:  -using ExcelDataReader;  -using ClosedXML.Excel; 我真的不记得我曾经使用过的两个库中的哪一个,但它可能是第二个。

您可以尝试以下代码:

var file = new XLWorkbook("YOUR EXCEL FILE PATH");
           var foglio = file.Worksheet("sheet"); //select the worksheet
var firstRowUsed = foglio.FirstRowUsed(); //Gets the first row used
var ComuniRow = firstRowUsed.RowUsed(); //Gets the very first row used (in your case A1:"Control System")
var LastRow = LastRowUsed.RowUsed(); //Last Row used
ComuniRow = ComuniRow.RowBelow();//Select the row below (in your case A2:"P/M").
string Value = ComuniRow.GetString(); //Assigns "P/M" to the string 

现在您具有字段的确切位置。 此时,您只需要循环整个列,直到“ LastRowUsed”。

while(ComuniRow != LastRow)
{
    string test = ComuniRow.GetString();//the value of the current selected cell
    ComuniRow = ComuniRow.RowBelow();
}

如果您需要选择特定的列,则可以使用.Cell(x)

while(ComuniRow.Cell([cell value]) != LastRow.Cell([cell value]))
{
    string test = ComuniRow.Cell([cell value]).GetString();//the value of the current selected cell
    ComuniRow = ComuniRow.RowBelow();
}