obtener nombres de hojas de openpyxl

2 minutos de lectura

Tengo un archivo xlsx moderadamente grande (alrededor de 14 MB) y OpenOffice se bloquea al intentar abrirlo. estaba tratando de usar abrirpyxl para leer el contenido, siguiendo este tutorial. El fragmento de código es el siguiente:

 from openpyxl import load_workbook
 wb = load_workbook(filename="large_file.xlsx", use_iterators = True)
 ws = wb.get_sheet_by_name(name="big_data") 

El problema es que no sé el nombre de la hoja, y Sheet1/Sheet2… etc. no funcionó (objeto devuelto NoneType). No pude encontrar una documentación que me diga Cómo obtener los nombres de las hojas para archivos xlsx usando openpyxl. ¿Alguien puede ayudarme?

avatar de usuario de alecxe
alejandro

Utilizar el sheetnames propiedad:

nombres de hojas

Devuelve la lista de los nombres de las hojas de cálculo de este libro.

Los nombres se devuelven en el orden de las hojas de trabajo.

Tipo: lista de cadenas

print (wb.sheetnames)

También puede obtener objetos de la hoja de trabajo de wb.worksheets:

ws = wb.worksheets[0]

  • wb.sheetnames es la ortografía preferida.

    –Charlie Clark

    1 de diciembre de 2015 a las 8:29

  • Sería increíblemente útil tener el nombre de la hoja como una propiedad en la clase WorkSheet.

    – Aron Lorincz

    08/04/2016 a las 17:06

  • @ÁronLőrincz El nombre de la hoja está disponible en los objetos de una hoja de trabajo como wsObj.title

    – barrio bajo

    21 de junio de 2016 a las 18:54


  • Esta respuesta está desactualizada. get_sheet_names() ahora está en desuso. Utilice el atributo wb.sheetnames.

    – Thruston

    11 de mayo de 2018 a las 14:04

  • @Thruston gracias por avisar! Actualicé la respuesta en consecuencia.

    – alecxe

    11 de mayo de 2018 a las 14:06

pitón 3.x
para obtener el nombre de la hoja, debe usar el atributo

g_sheet=wb.sheetnames

volver por lista

for i in g_sheet:
    print(i)

**elija cualquier nombre**

ws=wb[g_sheet[0]]

o ws=wb[any name]
supongamos que la hoja de nombres es paster

ws=wb["paster"]

Como complemento a las otras respuestas, para una hoja de trabajo en particular, también puede usar cf documentación en los parámetros del constructor:

ws.title

Como se mencionó en la respuesta anterior, puede obtener la lista de nombres de hojas usando el ws.sheetnames

Pero si conoce los nombres de las hojas, puede obtener ese objeto de la hoja de trabajo al

ws.get_sheet_by_name("YOUR_SHEET_NAME")

Otra forma de hacer esto es como se mencionó en la respuesta anterior

ws['YOUR_SHEET_NAME']

avatar de usuario de lulu
lulú

for worksheet in workbook:
    print(worksheet.name)

¿Ha sido útil esta solución?