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?
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']
lulú
for worksheet in workbook:
print(worksheet.name)