Saltar al contenido

iterar a través de todas las filas en una columna específica openpyxl

Posterior a de una extensa selección de datos solucionamos esta dificultad que presentan algunos de nuestros lectores. Te ofrecemos la solución y esperamos serte de gran ayuda.

Solución:

¿Por qué no puedes simplemente iterar sobre la columna ‘C’ (versión 2.4.7):

for cell in ws['C']:
   print cell.value

Puede especificar un rango para iterar con ws.iter_rows():

import openpyxl

wb = openpyxl.load_workbook('C:/workbook.xlsx')
ws = wb['Sheet3']
for row in ws.iter_rows('C:C'.format(ws.min_row,ws.max_row)):
    for cell in row:
        print cell.value

Editar: según Charlie Clark, puedes usar alternativamente ws.get_squared_range():

# ...
    ws.get_squared_range(min_col=1, min_row=1, max_col=1, max_row=10)
# ...

Edición 2: según su comentario, desea los valores de celda en una lista:

import openpyxl

wb = openpyxl.load_workbook('c:/_twd/2016-06-23_xlrd_xlwt/input.xlsx')
ws = wb.get_sheet_by_name('Sheet1')
mylist = []
for row in ws.iter_rows('A:A'.format(ws.min_row,ws.max_row)):
    for cell in row:
        mylist.append(cell.value)
print mylist 

También puedes hacer esto.

for row in ws.iter_rows():
   print(row[2].value)

Con esto, todavía está iterando a través de las filas (pero no las celdas) y solo está extrayendo los valores de la columna C en la fila para imprimir.

Nos puedes añadir valor a nuestra información añadiendo tu veteranía en las anotaciones.

¡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 *