Curso sobre como trabajar con hojas de cálculo (Excel, Calc) usando openpyxl en Python (I)

Índice:

Hay varias librerías para leer y/o escribir archivos en formato xlsx desde Python. El formato xlsx es el formato que usa Microsoft para la hoja de cálculos Microsoft Excel y se basa en el estándar Office Open XML del que ya hemos hablado bastante.

En este tutorial vamos a ver cómo podemos trabajar para leer información de ficheros en formato xlsx ya creados o para crear nuestros propios ficheros en formato xlsx.

Primero unos conceptos básicos:

  • libro: En nuestra jerga esto será la representación de nuestro fichero xlsx cuando lo abrimos en un software de hoja de cálculos.
  • hoja o pestaña: Un libro está compuesto de varias hojas o pestañas. Una hoja o pestaña es lo que usamos para escribir nuestra información. Cuando está vacia la podemos ver como una tabla vacia o rejilla (si es una hoja de trabajo). A esta tabla le podemos añadir valores numéricos, fechas, texto, fórmulas,…, en celdas. Además, sobre la rejilla podemos colocar gráficos basados en los datos de las celdas. Las hojas también pueden ser de gráficos. Veremos esto más en detalle en próximos capítulos.
  • celda: Es dónde colocamos nuestra información con la que haremos cosas.

Hay muchas cosas pero estas son las principales. Vamos a ver cómo se representan estas cosas en openpyxl:

Como siempre, vamos a empezar importando bibliotecas:

Veamos lo que nos ofrece:

La salida de lo anterior nos dará algo como lo siguiente:

Puedes ver que hay nombres como Workbook y worksheet que es lo que, más arriba, hemos denominado libro y hoja, respectivamente.

Para crear un documento vacio podemos hacer lo siguiente:

Si inspeccionamos un poco esta instancia de Workbook:

Lo anterior nos mostrará algo como lo siguiente:

Tiene un montón de cosas disponibles. Vamos a ver qué podría significar cada método público de los que tenemos ahí. Para ello vamos a usar algunas utilidades del módulo inspect:

Lo anterior nos da información sobre los métodos:

Veamos si tiene property‘s que puedan ser útiles:

Lo anterior mostrará en pantalla:

Vemos algunos métodos y property‘s interesantes para obtener la hoja que está activa, para obtener los nombres de las hojas, borrar alguna hoja, guardar el libro,…

Vamos a acceder a una hoja puesto que ahí es donde podemos leer y/o escribir cosas. Lo podemos hacer usando la property active:

Lo anterior debería mostrar en pantalla:

Vemos que es un objeto Worksheet. Vamos a ver lo que podemos hacer con el mismo:

Lo anterior debería mostrar en pantalla:

La hoja ofrece muchas más cosas que el libro. Es lógico puesto que aquí es donde vamos a hacer la mayoría de cosas.

Como antes, vamos a inspeccionar un poco los métodos y property‘s para ver brevemente lo que hacen:

Y lo anterior debería mostrar en pantalla algo como lo siguiente:

Y, como antes, nos mostrará nuevas cosas por pantalla:

Nos vamos a fijar ahora en el método cell, el cual nos permite acceder a la celda colocada en la posición que especifiquemos. Accedemos a la celda que está en la segunda fila y en la segunda columna:

[INCISO: Las filas y columnas empiezan en 1 y no en 0 como todo lo demás en Python].

Lo anterior nos muestra en pantalla el tipo del nuevo objeto:

Tenemos ahora un objeto Cell. Como anteriormente, vamos a ver lo que tiene disponible:

Que nos muestra en pantalla:

Siguiendo la misma tónica que antes vamos a ver los métodos y propertys y una breve descripción:

Y nos mostrará en pantalla:

Con la property value pòdemos obtener el valor de la celda o darle un valor. Vamos a darle un valor:

Y vamos a guardar el libro:

El anterior código debería haber creado un fichero llamado ‘new.xlsx’ en la misma carpeta desde donde estés ejecutando el código. Si abrimos el nuevo fichero que acabamos de crear con un programa de hoja de cálculos deberíamos ver algo como lo siguiente:

Hoja de cálculos resultado del código anterior.

Resumen

Este primer artículo ha sido un poco un repaso al concepto de libro, hoja y celda, que son algunos de los conceptos más importantes en una hoja de cálculos y hemos visto un poco por encima cómo se han implementado estos conceptos en openpyxl y qué funcionalidad asociada tienen.

Hemos visto que la información se distribuye principalmente en un libro (objeto openpyxl.workbook.Workbook) que contiene una o más hojas o pestañas (objeto openpyxl.worksheet.worksheet.Worksheet) que, a su vez, contienen celdas (objeto openpyxl.cell.Cell) y pueden contener otras cosas.

Dentro de poco más. Estad atentas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

66 − sixty four =