Pitón

Manipular hojas de cálculo de Excel con Python

Manipular hojas de cálculo de Excel con Python

Microsoft Excel es un software de hoja de cálculo que se utiliza para almacenar y administrar datos tabulares. Además, con Excel, los cálculos se pueden realizar aplicando fórmulas a los datos y se pueden producir visualizaciones de datos.Muchas tareas realizadas en hojas de cálculo, como operaciones matemáticas, se pueden automatizar mediante programación, y muchos lenguajes de programación tienen módulos para manipular hojas de cálculo de Excel. En este tutorial, le mostraremos cómo usar el módulo openpyxl de Python para leer y modificar hojas de cálculo de Excel.

Instalación de openpyxl

Antes de poder instalar openpyxl, debe instalar pip. Pip se usa para instalar paquetes de Python. Ejecute el siguiente comando en el símbolo del sistema para ver si pip está instalado.

C: \ Users \ windows> ayuda de pip

Si se devuelve el contenido de ayuda de pip, entonces se instala pip; de lo contrario, vaya al siguiente enlace y descargue el get-pip.archivo py:

https: // bootstrap.pypa.io / get-pip.py

Ahora, ejecute el siguiente comando para instalar pip:

C: \ Usuarios \ windows> python get-pip.py

Después de instalar pip, se puede usar el siguiente comando para instalar openpyxl.

C: \ Usuarios \ windows> pip install openpyxl

Crear un documento de Excel

En esta sección, usaremos el módulo openpyxl para crear un documento de Excel. Primero, abra el símbolo del sistema escribiendo 'cmd' en la barra de búsqueda; luego, ingrese

C: \ Usuarios \ windows> python

Para crear un libro de trabajo de Excel, importaremos el módulo openpyxl y luego usaremos el método 'Workbook ()' para crear un libro de trabajo.

>>> # importando módulo openpyxl
>>> importar openpyxl
>>> # Inicialización de un libro de trabajo
>>> libro_trabajo = openpyxl.Libro de trabajo()
>>> # guardar libro de trabajo como 'ejemplo.xlsx '
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

Los comandos anteriores crean un documento de Excel llamado ejemplo.xlsx. A continuación, manipularemos este documento de Excel.

Manipular hojas en un documento de Excel

Hemos creado un documento de Excel llamado ejemplo.xlsx. Ahora, manipularemos las hojas de este documento usando Python. El módulo openpyxl tiene un método 'create_sheet ()' que se puede usar para crear una nueva hoja. Este método toma dos argumentos: índice y título. El índice define la ubicación de la hoja utilizando cualquier número entero no negativo (incluido 0), y el título es el título de la hoja. Se puede mostrar una lista de todas las hojas del objeto work_book llamando a la lista de nombres de hojas.

>>> # importando openpyxl
>>> importar openpyxl
>>> # cargando un documento de Excel existente en un objeto work_book
>>> libro_trabajo = openpyxl.load_workbook ('ejemplo.xlsx ')
>>> # Creando una nueva hoja en el índice 0
>>> libro_trabajo.create_sheet (índice = 0, título = 'Primera hoja')

>>> # Obtener todas las hojas
>>> libro_trabajo.nombres de hoja
['Primera hoja', 'Hoja']
>>> # Guardar documento de Excel
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

En el código anterior, creamos una hoja llamada Primera hoja y la colocamos en el índice 0. La hoja previamente ubicada en el índice 0 se movió al primer índice, como se muestra en la salida. Ahora, vamos a cambiar el nombre de la hoja original de Hoja a Segunda hoja.

El atributo de título contiene el nombre de la hoja. Para cambiar el nombre de una hoja, primero debemos navegar a esa hoja de la siguiente manera.

>>> # Obtener una hoja activa de un documento de Excel
>>> hoja = libro_trabajo.activo
>>> # Nombre de la hoja de impresión
>>> imprimir (hoja.título)
Primera hoja >>> # Navegación a la segunda hoja (en el índice 1)
>>> libro_trabajo.activo = 1
>>> # Obtener hoja activa
>>> hoja = libro_trabajo.activo
>>> # Nombre de la hoja de impresión
>>> imprimir (hoja.título)
Hoja >>> # Cambio de título de hoja
>>> hoja.title = 'Segunda hoja'
>>> # Título de la hoja de impresión
>>> imprimir (hoja.título)
Segunda hoja

Del mismo modo, podemos eliminar una hoja del documento de Excel. El módulo openpyxl ofrece el método remove () para eliminar una hoja. Este método toma el nombre de la hoja que se eliminará como argumento y luego elimina esa hoja. Podemos eliminar la Segunda Hoja de la siguiente manera:

>>> # eliminando una hoja por nombre
>>> libro_trabajo.eliminar (work_book ['Segunda hoja'])
>>> # obteniendo todas las sábanas
>>> libro_trabajo.nombres de hoja
['Primera hoja']
>>> # guardar documento de Excel
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

Agregar datos a celdas

Hasta ahora, le hemos mostrado cómo crear o eliminar hojas en un documento de Excel. Ahora, vamos a agregar datos a las celdas de diferentes hojas. En este ejemplo, tenemos una sola hoja llamada Primera hoja en nuestro documento y queremos crear dos hojas más.

>>> # importando openpyxl
>>> importar openpyxl
>>> # cargando libro de trabajo
>>> libro_trabajo = openpyxl.load_workbook ('ejemplo.xlsx ')
>>> # Creando una nueva hoja en el 1er índice
>>> libro_trabajo.create_sheet (índice = 1, título = 'Segunda hoja')

>>> # creando una nueva hoja en el segundo índice
>>> libro_trabajo.create_sheet (índice = 2, título = 'Tercera hoja')

>>> # obteniendo todas las sábanas
>>> libro_trabajo.nombres de hoja
['Primera hoja', 'Segunda hoja', 'Tercera hoja']

Ahora, tenemos tres hojas y agregaremos datos a las celdas de estas hojas.

>>> # Obtener la primera hoja
>>> sheet_1 = work_book ['Primera hoja']
>>> # Agregar datos a la celda 'A1' de la primera hoja
>>> sheet_1 ['A1'] = 'Nombre'
>>> # Obtener la segunda hoja
>>> sheet_2 = work_book ['Segunda hoja']
>>> # Agregar datos a la celda 'A1' de la segunda hoja
>>> hoja_2 ['A1'] = 'ID'
>>> # Obtener la tercera hoja
>>> sheet_3 = work_book ['Tercera hoja']
>>> # Agregar datos a la celda 'A1' de la tercera hoja
>>> sheet_3 ['A1'] = 'Calificaciones'
>>> # Guardar libro de Excel
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

Leer hojas de Excel

El módulo openpyxl usa el atributo de valor de una celda para almacenar los datos de esa celda. Podemos leer los datos en una celda llamando al atributo de valor de la celda. Ahora, tenemos tres hojas y cada hoja contiene algunos datos. Podemos leer los datos usando las siguientes funciones en openpyxl:

>>> # importando openpyxl
>>> importar openpyxl
>>> # cargando libro de trabajo
>>> libro_trabajo = openpyxl.load_workbook ('ejemplo.xlsx ')
>>> # Obtener la primera hoja
>>> sheet_1 = work_book ['Primera hoja']
>>> # Obtener la segunda hoja
>>> sheet_2 = work_book ['Segunda hoja']
>>> # Obtener la tercera hoja
>>> sheet_3 = work_book ['Tercera hoja']
>>> # datos de impresión de la celda 'A1' de la primera hoja
>>> imprimir (hoja_1 ['A1'].valor)
Nombre
>>> # imprimiendo datos de la celda 'A1' de la Segunda Hoja
>>> imprimir (hoja_2 ['A1'].valor)
IDENTIFICACIÓN
>>> # imprimiendo datos de la celda 'A1' de la Tercera Hoja
>>> imprimir (hoja_3 ['A1'].valor)
Los grados

Cambio de fuentes y colores

A continuación, le mostraremos cómo cambiar la fuente de una celda usando la función Font (). Primero, importe el openpyxl.objeto de estilos. El método Font () toma una lista de argumentos, que incluyen:

  • nombre (cadena): el nombre de la fuente
  • tamaño (int o float): el tamaño de la fuente
  • subrayado (cadena): el tipo de subrayado
  • color (cuerda): el color hexadecimal del texto
  • cursiva (bool): si la fuente está en cursiva
  • negrita (bool): si la fuente está en negrita

Para aplicar estilos, primero debemos crear un objeto pasando todos los parámetros al método Font (). Luego, seleccionamos la hoja, y dentro de la hoja, seleccionamos la celda a la que queremos aplicar el estilo. Luego, aplicamos estilo a la celda seleccionada.

>>> # importando openpyxl
>>> importar openpyxl
>>> # importando el método de fuente de openpyxl.estilos
>>> de openpyxl.fuente de importación de estilos
>>> # cargando libro de trabajo
>>> libro_trabajo = openpyxl.load_workbook ('ejemplo.xlsx ')
>>> # Creando objeto de estilo
>>> estilo = Fuente (nombre = 'Consolas', tamaño = 13, negrita = Verdadero,
… Cursiva = falso)
>>> # Seleccionar hoja del libro de trabajo
>>> sheet_1 = work_book ['Primera hoja']
>>> # Seleccionando la celda que queremos agregar estilos
>>> a1 = hoja_1 ['A1']
>>> # Aplicar estilos a la celda
>>> a1.fuente = estilo
>>> # Guardando libro de trabajo
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

Aplicar bordes a celdas

Podemos aplicar bordes a las celdas en una hoja de Excel usando los métodos Border () y Side () de openpyxl.estilos.módulo de fronteras. Podemos pasar diferentes funciones como parámetros al método Border (). Las siguientes son algunas de las funciones que se pasan como parámetros al método Border () para definir las dimensiones del borde.

  • izquierda: aplica un borde al lado izquierdo de una celda
  • derecho: aplica un borde al lado derecho de una celda
  • cima: aplica un borde en la parte superior de una celda
  • fondo: aplica un borde en la parte inferior de una celda

Estas funciones toman atributos de estilo como parámetros. El atributo de estilo define el estilo del borde (e.gramo., sólido, punteado). Los parámetros de estilo pueden tener cualquiera de los siguientes valores.

  • doble: un borde de doble línea
  • estropeado: un borde punteado
  • delgada: un borde delgado
  • medio: un borde mediano
  • mediumDashDot: un borde discontinuo y punteado de peso medio
  • grueso: un borde grueso
  • guion punto: un borde punteado y punteado
  • cabello: un borde muy fino
  • punteado: un borde punteado

Ahora, aplicaremos diferentes tipos de bordes a diferentes celdas de nuestras hojas de cálculo. Primero, seleccionamos celdas, y luego, definimos estilos de borde y aplicamos estos estilos a diferentes celdas.

>>> # importando openpyxl
>>> importar openpyxl
>>> # importando clases Border y Side
>>> de openpyxl.estilos.fronteras importar Borde, lateral
>>> # cargando libro de trabajo
>>> libro_trabajo = openpyxl.load_workbook ('ejemplo.xlsx ')
>>> # Seleccionar hoja
>>> sheet_1 = work_book ['Primera hoja']
>>> # Seleccionar diferentes celdas de la hoja
>>> celda_1 = hoja_1 ['A1']
>>> celda_2 = hoja_1 ['B2']
>>> celda_3 = hoja_1 ['C3']
>>> # Definición de diferentes estilos de borde
>>> style_1 = Border (bottom = Side (style = 'punteado'))
>>> style_2 = Border (right = Side (style = 'thin'))
>>> style_3 = Border (top = Side (style = 'dashDot'))
>>> # aplicando estilos de borde a las celdas
>>> celda_1.border = style_1
>>> celda_2.border = style_2
>>> celda_3.border = style_3
>>> # Guardando libro de trabajo
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

Ajuste de las dimensiones de filas y columnas

La altura de la fila y el ancho de la columna de un documento de Excel también se pueden ajustar con Python. El módulo openpyxl tiene dos métodos integrados que se pueden utilizar para realizar estas acciones. Primero, seleccionamos la hoja de la que queremos cambiar el ancho de la columna o la altura de la fila. Luego, aplicamos un método a la fila o columna específica.

>>> # importando openpyxl
>>> importar openpyxl
>>> # cargando libro de trabajo
>>> libro_trabajo = openpyxl.load_workbook ('ejemplo.xlsx ')
>>> # hoja de selección
>>> sheet_1 = work_book ['Primera hoja']
>>> # cambiando la altura de la primera fila
>>> hoja_1.row_dimensions [1].altura = 50
>>> # Guardando libro de trabajo
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

De manera similar, podemos cambiar el ancho de una columna usando el siguiente código

>>> # seleccionando la hoja del libro de Excel
>>> sheet_2 = work_book ['Segunda hoja']
>>> # cambiando el ancho de una columna
>>> hoja_2.column_dimensions ['A'].ancho = 50
>>> # Guardando libro de trabajo
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

El código anterior cambiará la altura de la primera fila a 50 ptos y el ancho de la columna A a 50 ptos.

Fusionar y separar celdas

Cuando trabajamos con hojas de cálculo de Excel, a menudo necesitamos fusionar y separar celdas. Para fusionar celdas en Python, se puede usar una función simple basada en openpyxl. El módulo openpyxl ofrece el método merge_cells (), que se puede utilizar para fusionar celdas en Excel. La nueva celda tomará el nombre de la celda superior izquierda. Por ejemplo, si queremos fusionar las celdas de la celda A1 a la celda B2, la celda recién formada se denominará A1. Para fusionar celdas usando openpyxl, primero seleccionamos la hoja y luego aplicamos el método merge_cells () a la hoja.

>>> # importando módulo openpyxl
>>> importar openpyxl
>>> # cargando libro de trabajo
>>> libro_trabajo = openpyxl.load_workbook ('ejemplo.xlsx ')
>>> # seleccionando la primera hoja del libro de Excel
>>> sheet_1 = work_book ['Primera hoja']
>>> # fusionando celdas de A1 a B2 en la Hoja 1
>>> hoja_1.merge_cells ('A1: B2')
>>> # guardar libro de trabajo
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

De manera similar, el método unmerge_cells () se puede usar para separar celdas en una hoja de cálculo de Excel. El siguiente código se puede utilizar para separar celdas:

>>> # seleccionando hoja del libro de trabajo
>>> sheet_1 = work_book ['Primera hoja']
>>> # separando celdas de A1 a B2
>>> hoja_1.unmerge_cells ('A1: B2')
>>> # guardar libro de trabajo
>>> libro_trabajo.guardar ('ejemplo.xlsx ')

Conclusión

Las hojas de cálculo de Excel se utilizan comúnmente para la manipulación de datos. Sin embargo, estas tareas pueden resultar monótonas. Por lo tanto, en tales casos, la programación se puede utilizar para automatizar la manipulación de la hoja de cálculo.

En este artículo, discutimos algunas de las funciones útiles del módulo openpyxl de Python. Le mostramos cómo crear, leer, eliminar y modificar hojas de cálculo de Excel, cómo cambiar el estilo, aplicar la fuente, los bordes y las dimensiones de las celdas, y cómo fusionar y separar celdas. Al aplicar estas funciones, puede automatizar muchas tareas de manipulación de hojas de cálculo usando Python.

Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...
Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...