如何在找到单元格后选择整行和列?

时间:2017-10-06 06:54:44

标签: c# excel

在Excel范围内搜索值后,我只需要选择整行,然后在行的列中找到每个值。

xlRange = xlWorksheet.Range[rangeStart, rangeStop];

var xlCell = xlRange.Find
    (
        valueToFind
        , xlRange.Range[rangeStart]
        , Excel.XlFindLookIn.xlValues
        , Excel.XlLookAt.xlWhole
        , Excel.XlSearchOrder.xlByColumns
        , Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext
        , false
    );

xlCell.get_Address()开始,我需要获得完整的行,也许只找到找到的单元格的完整列。

1 个答案:

答案 0 :(得分:1)

要获取xlCell的完整行或列及其值,您可以使用以下代码:

var row = xlCell.EntireRow;
object[,] rowValues = row.Value2;

var col = xlCell.EntireColumn;
object[,] colValues = col.Value2;

请注意,这些值是包含整个工作表内容的相当大的数组。如果您只想要相关的,那么应该遵循以下方法:

var cells = xlWorksheet.Cells;
var used = xlWorksheet.UsedRange;

var rowCellFirst = cells[row.Row, 1];
var rowCellLast = cells[row.Row, used.Column + used.Columns.Count - 1];
object[,] rowValuesUsed = xlWorksheet.Range[rowCellFirst, rowCellLast].Value2;

var colCellFirst = cells[1, col.Column];
var colCellLast = cells[used.Row + used.Rows.Count - 1, col.Column];
object[,] colValuesUsed = xlWorksheet.Range[colCellFirst, colCellLast].Value2;