Obtener el índice de columna máximo en fila y el índice de fila máximo en columna

Escenarios de uso posibles

Cuando solo necesita manipular algunos datos en las filas o columnas, es necesario conocer el rango de datos de las filas y columnas. Aspose.Cells ofrece esta función. Para obtener el índice de columna máximo en una fila, puede obtener las propiedades Row.LastCell y Row.LastDataCell, y luego usar la propiedad Cell.Column para obtener el índice de columna máximo y el índice de columna de datos máximo. Pero para obtener el índice de fila máximo e índice de fila de datos máximo en una columna, es necesario crear un rango en la columna, luego recorrer el rango para encontrar la última celda y finalmente obtener el atributo Cell.Row en la celda.

Aspose.Cells proporciona las siguientes propiedades y métodos para ayudarlo a alcanzar sus metas.

Obtener el índice de columna máximo en fila y el índice de fila máximo en columna usando Aspose.Cells

Este ejemplo muestra cómo:

  1. Cargar el archivo de muestra.
  2. Obtener la fila que necesita obtener el índice de columna máximo e índice de columna de datos máximo.
  3. Obtener el atributo Cell.Column en la celda.
  4. Crear un rango basado en la columna.
  5. Obtener el iterador y recorrer el rango.
  6. Obtener el atributo Cell.Row en la celda.
Workbook workbook = new Workbook(filePath + "sample.xlsx");
Worksheet sheet = workbook.Worksheets[0];
Cells cells = sheet.Cells;
Row row = cells.CheckRow(1);
if (row != null)
{
//get Maximum column index of Row which contains data or style.
Console.WriteLine("Max column index in row: " + row.LastCell.Column);
//get Maximum column index of Row which contains data.
Console.WriteLine("Max data column index in row: " + row.LastDataCell.Column);
}
// create the range of column B
Range columnRange = cells.CreateRange(1, 1, true);
IEnumerator colIter = columnRange.GetEnumerator();
int maxRow = 0;
int maxDataRow = 0;
while (colIter.MoveNext())
{
Cell currCell = (Cell)colIter.Current;
if (!string.IsNullOrEmpty(currCell.StringValue))
{
maxDataRow = currCell.Row;
}
if (!string.IsNullOrEmpty(currCell.StringValue) || currCell.HasCustomStyle)
{
maxRow = currCell.Row;
}
}
//Maximum row index of Column which contains data or style.
Console.WriteLine("Max row index in Column: " + maxRow);
//Maximum row index of Column which contains data.
Console.WriteLine("Max data row index in Column: " + maxDataRow);