Python: Módulo: openpyxl

Sirve para poder leer, crear y modificar ficheros Excel.

Para instalar como siempre usamos pip3:

pip3 install openpyxl

Para poder leer un fichero Excel debemos abrirlo:

from openpyxl import load_workbook

# leemos el fichero
excel_wb = load_workbook('fichero.xlsx')

# primera pestaña o pestaña activa
excel_sheet = excel_wb.active

# leemos la pestaña "nombre_pestaña"
# excel_sheet = excel_wb['nombre_pestaña']

# mostramos la celda 1:B = 1:2
print(excel_sheet.cell(row=1, column=2).value)

Podemos obtener diferente información de la pestaña (hoja excel):

Podemos obtener desde la primera celda (A1 = 1:1) hasta el máximo que hay definido.

excel_sheet.min_row
1

excel_sheet.max_row
139

excel_sheet.min_column
1

excel_sheet.max_column
13

excel_sheet.dimensions
'A1:M139'

# hoja excel de 1:1 (A1) a 139:13 (M:139)

Podemos acceder a los valores de una celda de diferente formas, indicando la coordenada con letra (columna) y fila (número), por ejemplo (B1) o por separado indicando fila y columna (ambos numéricos, siendo la A la columna 1):

Para ver el contenido de una celda usaremos el método .value:

from openpyxl import load_workbook

# leemos el fichero
excel_wb = load_workbook('fichero.xlsx')

# primera pestaña o pestaña activa
excel_sheet = excel_wb.active

# mostramos la celda B1 = 1:2 = Fila 1 - Columna B (2)
print(excel_sheet.cell(row=1, column=2).value)

# mostramos la celda B1 = 1:2 = Fila 1 - Columna B (2)
print(excel_sheet['B1'].value)

El método .is_date nos indicará si el formato de la celda es fecha o no.

excel_sheet['aa1'] = "10/04/2019"

excel_sheet['aa1'].value
'10/04/2019'

excel_sheet['aa1'].is_date
False

excel_sheet['aa1'] = datetime.datetime(2010, 7, 21)

excel_sheet['aa1'].value
datetime.datetime(2010, 7, 21, 0, 0)

excel_sheet['aa1'].is_date
True

El método .number_format nos devuelve el forma de la celda.

excel_sheet['a1'] = "10/04/2019"

excel_sheet['a1'].number_format
'General'

excel_sheet['a1'] = datetime.datetime(2010, 7, 21)

excel_sheet['a1'].number_format
'yyyy-mm-dd h:mm:ss'

excel_sheet['a1'] = '#,##0€'

excel_sheet['a1'].number_format
'#,##0€'

Podemos cambiar el estilo, color, forma y demás parámetros de una celda, especialmente cuando creamos una excel.

TITULO = Font(
	name='Calibri',
	size=24,
	bold=True,
	italic=False,
	vertAlign=None,
	underline='none',
	strike=False,
	color='ff0000')

excel_sheet['a1'].font = TITULO

Más información en: openpyxl

Retro

Lugares

Redes

Sistemas

Varios