Saltar al contenido

función xlwings para encontrar la última fila con datos

Después de consultar con especialistas en este tema, programadores de deferentes áreas y profesores dimos con la solución al dilema y la compartimos en este post.

Solución:

Consolidando las respuestas anteriores, puede hacerlo en una sola línea:

wb.sheet.range(column + last cell value).Get End of section going up[non blank assuming the last cell is blank].row

Código de ejemplo:

import xlwings as xw
from xlwings import Range, constants

wb = xw.Book(r'path.xlsx')
wb.sheets[0].range('A' + str(wb.sheets[0].cells.last_cell.row)).end('up').row

Esto es muy parecido a la respuesta de crazymachu., simplemente envuelto en una función. Desde la versión 0.9.0 de xlwings puedes hacer esto:

import xlwings as xw

def lastRow(idx, workbook, col=1):
    """ Find the last row in the worksheet that contains data.

    idx: Specifies the worksheet to select. Starts counting from zero.

    workbook: Specifies the workbook

    col: The column in which to look for the last cell containing data.
    """

    ws = workbook.sheets[idx]

    lwr_r_cell = ws.cells.last_cell      # lower right cell
    lwr_row = lwr_r_cell.row             # row of the lower right cell
    lwr_cell = ws.range((lwr_row, col))  # change to your specified column

    if lwr_cell.value is None:
        lwr_cell = lwr_cell.end('up')    # go up untill you hit a non-empty cell

    return lwr_cell.row

Intuitivamente, la función comienza encontrando la celda inferior derecha más extrema en el libro de trabajo. Luego se mueve a la columna seleccionada y luego hacia arriba hasta que llega a la primera celda que no está vacía.

Podrías intentar usar Direction comenzando desde abajo y luego subiendo:

import xlwings
from xlwings.constants import Direction
wb = xlwings.Workbook(r'data.xlsx')
print(wb.active_sheet.xl_sheet.Cells(65536, 1).End(Direction.xlUp).Row)

valoraciones y reseñas

Tienes la opción de confirmar nuestra ocupación ejecutando un comentario o dejando una valoración te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *