Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

295
Visualizações
Iterar sobre hojas de trabajo, filas, columnas

Quiero imprimir todos los datos (todas las filas) de una columna específica en python usando openpyxl . Estoy trabajando de esta manera;

 from openpyxl import load_workbook workbook = load_workbook('----------/dataset.xlsx') sheet = workbook.active for i in sheet: print(sheet.cell(row=i, column=2).value)

pero da

si fila < 1 o columna < 1: TypeError: tipos no ordenados: tuple() < int()

Porque estoy iterando en row=i . Si uso sheet.cell(row=4, column=2).value , imprime el valor de la celda. Pero, ¿cómo puedo iterar sobre todos los documentos?

Editar 1

En algunas investigaciones, se encuentra que los datos se pueden obtener usando el Nombre de la hoja. La Sheet 1 existe en el archivo .xlsx pero sus datos no se imprimen. ¿Algún problema en este código?

 workbook = load_workbook('---------------/dataset.xlsx') print(workbook.get_sheet_names()) worksheet =workbook.get_sheet_by_name('Sheet1') c=2 for i in worksheet: d = worksheet.cell(row=c, column=2) if(d.value is None): return else: print(d.value) c=c+1
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Lea la documentación de OpenPyXL

Iteración sobre todas las worksheets de trabajo en un workbook de trabajo, por ejemplo:

 for n, sheet in enumerate(wb.worksheets): print('Sheet Index:[{}], Title:{}'.format(n, sheet.title))

Salida :

 Sheet Index:[0], Title: Sheet Sheet Index:[1], Title: Sheet1 Sheet Index:[2], Title: Sheet2

Iteración sobre todas las rows y columns en una hoja de trabajo:

 worksheet = workbook.get_sheet_by_name('Sheet') for row_cells in worksheet.iter_rows(): for cell in row_cells: print('%s: cell.value=%s' % (cell, cell.value) )

Salida :

 <Cell Sheet.A1>: cell.value=²234 <Cell Sheet.B1>: cell.value=12.5 <Cell Sheet.C1>: cell.value=C1 <Cell Sheet.D1>: cell.value=D1 <Cell Sheet.A2>: cell.value=1234 <Cell Sheet.B2>: cell.value=8.2 <Cell Sheet.C2>: cell.value=C2 <Cell Sheet.D2>: cell.value=D2

Iteración sobre todas las columns de una row , por ejemplo, row==2 :

 for row_cells in worksheet.iter_rows(min_row=2, max_row=2): for cell in row_cells: print('%s: cell.value=%s' % (cell, cell.value) )

Salida :

 <Cell Sheet.A2>: cell.value=1234 <Cell Sheet.B2>: cell.value=8.2 <Cell Sheet.C2>: cell.value=C2 <Cell Sheet.D2>: cell.value=D2

Iteración sobre todas las rows , solo column 2 :

 for col_cells in worksheet.iter_cols(min_col=2, max_col=2): for cell in col_cells: print('%s: cell.value=%s' % (cell, cell.value))

Salida :

 <Cell Sheet.B1>: cell.value=12.5 <Cell Sheet.B2>: cell.value=8.2 <Cell Sheet.B3>: cell.value=9.8 <Cell Sheet.B4>: cell.value=10.1 <Cell Sheet.B5>: cell.value=7.7

Probado con Python: 3.4.2 - openpyxl: 2.4.1 - LibreOffice: 4.3.3.2

over 4 years ago · Santiago Trujillo Relatório

0

Prueba esto,

 from openpyxl import load_workbook workbook = load_workbook('----------/dataset.xlsx') sheet = workbook.active row_count = sheet.max_row for i in range(row_count): print(sheet.cell(row=i, column=2).value)
over 4 years ago · Santiago Trujillo Relatório

0

Este código leerá una hoja como si fuera un csv y completará una lista de diccionarios en el result usando la primera fila como títulos de columna.

 from openpyxl import load_workbook result = [] wb = load_workbook(filename=file_name) sheet = wb.active col_count = sheet.max_column column_names = {} for c in range(1, col_count): heading = sheet.cell(row=1, column=c).value if not heading: col_count = c break column_names[c] = heading for r, row_cells in enumerate(sheet.iter_rows(2), 2): row = {} for c in range(1, col_count): value = sheet.cell(row=r, column=c).value if type(value) == datetime: value = value.strftime('%Y-%m-%d') row[column_names[c]] = value result.append(row)
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda