Manipulando hojas de cálculo de Excel usando Python

Manipulando hojas de cálculo de Excel usando 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 las operaciones matemáticas, se pueden automatizar a través de la 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 que pueda 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 está instalado PIP.

C: \ users \ windows> pip ayuda

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: \ Users \ Windows> Python Get-PIP.py

Después de instalar PIP, se puede usar el siguiente comando para instalar OpenPyxl.

C: \ Users \ Windows> PIP Instalar OpenPyxl

Creando un documento de Excel

En esta sección, utilizaremos 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; Entonces, entra

C: \ Users \ 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.

>>> # Importar módulo OpenPyXL
>>> importar openpyxl
>>> # Inicializar un libro de trabajo
>>> Work_book = OpenPyxl.Libro de trabajo()
>>> # Guardar el libro de trabajo como 'Ejemplo.xlsx '
>>> Work_book.Guardar ('Ejemplo.xlsx ')

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

Manipulando 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 colocación de la hoja utilizando cualquier entero no negativo (incluido 0), y el título es el título de la hoja. Se puede mostrar una lista de todas las sábanas en el objeto Work_book llamando a la lista.

>>> # Importar OpenPyxl
>>> importar openpyxl
>>> # Carga del documento Excel existente en objeto Work_book
>>> Work_book = OpenPyxl.Load_workbook ('Ejemplo.xlsx ')
>>> # Crear una nueva hoja en el índice 0th
>>> Work_book.create_sheet (index = 0, title = 'Primera hoja')

>>> # obtener todas las sábanas
>>> Work_book.chapas
['Primera hoja', 'hoja']
>>> # Guardar documento de Excel
>>> Work_book.Guardar ('Ejemplo.xlsx ')

En el código anterior, creamos una hoja llamada First Sheet y la colocamos en el índice 0th. La hoja ubicada previamente 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 desde la hoja hasta la segunda hoja.

El atributo del 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 del documento de Excel
>>> hoja = trabajo_book.activo
>>> # Nombre de hoja de impresión
>>> Imprimir (Hoja.título)
Primera hoja >>> # navegando a la segunda hoja (en el índice 1)
>>> Work_book.activo = 1
>>> # obtener una hoja activa
>>> hoja = trabajo_book.activo
>>> # Nombre de hoja de impresión
>>> Imprimir (Hoja.título)
Hoja >>> # Título de la hoja cambiando
>>> Hoja.Title = 'Second Sheet'
>>> # 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 Remout () para eliminar una hoja. Este método toma el nombre de la hoja para eliminar como argumento y luego elimina esa hoja. Podemos eliminar la segunda hoja de la siguiente manera:

>>> # eliminar una hoja por su nombre
>>> Work_book.eliminar (work_book ['segunda hoja'])
>>> # obtener todas las sábanas
>>> Work_book.chapas
['Primera hoja']
>>> # Guardar documento de Excel
>>> Work_book.Guardar ('Ejemplo.xlsx ')

Agregar datos a las 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 First Sheet en nuestro documento, y queremos crear dos hojas más.

>>> # Importar OpenPyxl
>>> importar openpyxl
>>> # Libro de trabajo de carga
>>> Work_book = OpenPyxl.Load_workbook ('Ejemplo.xlsx ')
>>> # Crear una nueva hoja en el primer índice
>>> Work_book.create_sheet (index = 1, title = 'segunda hoja')

>>> # Crear una nueva hoja en el segundo índice
>>> Work_book.create_sheet (index = 2, title = 'Third Sheet')

>>> # obtener todas las sábanas
>>> Work_book.chapas
['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
>>> sheet_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'] = 'grados'
>>> # Guardar el libro de trabajo de Excel
>>> Work_book.Guardar ('Ejemplo.xlsx ')

Lectura de hojas de Excel

El módulo OpenPyXL utiliza 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 utilizando las siguientes funciones en OpenPyxl:

>>> # Importar OpenPyxl
>>> importar openpyxl
>>> # Libro de trabajo de carga
>>> Work_book = 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']
>>> # Impresión de datos de la celda 'A1' de la primera hoja
>>> imprimir (sheet_1 ['a1'].valor)
Nombre
>>> # Impresión de datos de la celda 'A1' de la segunda hoja
>>> imprimir (sheet_2 ['a1'].valor)
IDENTIFICACIÓN
>>> # Impresión de datos de la celda 'A1' de la tercera hoja
>>> imprimir (sheet_3 ['a1'].valor)
Los grados

Cambiar las fuentes y los colores

A continuación, le mostraremos cómo cambiar la fuente de una celda utilizando 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 flotante): el tamaño de la fuente
  • subrayar (cadena): el tipo subrayado
  • color (cadena): El color hexadecimal del texto
  • cursiva (bool): si la fuente está en cursiva
  • Bold (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.

>>> # Importar OpenPyxl
>>> importar openpyxl
>>> # Método de fuente de importación desde OpenPyxl.estilos
>>> Desde OpenPyxl.fuente de importación de estilos
>>> # Libro de trabajo de carga
>>> Work_book = OpenPyxl.Load_workbook ('Ejemplo.xlsx ')
>>> # Crear objeto de estilo
>>> style = font (name = 'consolas', size = 13, bold = verdadero,
... en cursiva = falso)
>>> # Seleccionar la hoja del libro de trabajo
>>> sheet_1 = work_book ['Primera hoja']
>>> # Selección de la celda queremos agregar estilos
>>> a1 = sheet_1 ['a1']
>>> # aplicando estilos a la celda
>>> A1.fuente = estilo
>>> # Guardar libros de trabajo
>>> Work_book.Guardar ('Ejemplo.xlsx ')

Aplicar bordes a las células

Podemos aplicar bordes a las celdas en una hoja de Excel usando los métodos de borde () y lateral de la 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 de borde () para definir las dimensiones del borde.

  • izquierda: Aplicar un borde al lado izquierdo de una celda
  • bien: Aplicar un borde al lado derecho de una celda
  • arriba: Aplicar un borde en la parte superior de una celda
  • abajo: Aplicar un borde al fondo 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, discontinuo). Los parámetros de estilo pueden tener cualquiera de los siguientes valores.

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

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

>>> # Importar OpenPyxl
>>> importar openpyxl
>>> # Importar clases fronterizas y laterales
>>> Desde OpenPyxl.estilos.Border de importación de Borders, lado
>>> # Libro de trabajo de carga
>>> Work_book = OpenPyxl.Load_workbook ('Ejemplo.xlsx ')
>>> # Selección de hoja
>>> sheet_1 = work_book ['Primera hoja']
>>> # seleccionar diferentes celdas de la hoja
>>> Cell_1 = Shead_1 ['A1']
>>> Cell_2 = Shead_1 ['B2']
>>> Cell_3 = Shead_1 ['C3']
>>> # Definición de diferentes estilos fronterizos
>>> style_1 = border (fondo = lado (style = 'puntos'))
>>> style_2 = border (right = lide (style = 'Thin'))
>>> style_3 = border (top = lide (style = 'dashdot'))
>>> # Aplicar estilos de borde a las celdas
>>> Cell_1.border = style_1
>>> Cell_2.border = style_2
>>> Cell_3.border = style_3
>>> # Guardar libros de trabajo
>>> Work_book.Guardar ('Ejemplo.xlsx ')

Ajuste de dimensiones de fila y columna

La altura de la fila y el ancho de la columna de un documento de Excel también se pueden ajustar usando Python. El módulo OpenPyXL tiene dos métodos incorporados que se pueden usar 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.

>>> # Importar OpenPyxl
>>> importar openpyxl
>>> # Libro de trabajo de carga
>>> Work_book = OpenPyxl.Load_workbook ('Ejemplo.xlsx ')
>>> # Selección de hoja
>>> sheet_1 = work_book ['Primera hoja']
>>> # Cambiar la altura de la primera fila
>>> hoja_1.Row_dimensions [1].altura = 50
>>> # Guardar libros de trabajo
>>> Work_book.Guardar ('Ejemplo.xlsx ')

Del mismo modo, podemos cambiar el ancho de una columna utilizando el siguiente código

>>> # Seleccionar hoja de Excel Workbook
>>> sheet_2 = work_book ['segunda hoja']
>>> # Cambiar el ancho de una columna
>>> sheet_2.column_dimensions ['a'].Ancho = 50
>>> # Guardar libros de trabajo
>>> Work_book.Guardar ('Ejemplo.xlsx ')

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

Fusionar e innumerables células

Cuando trabajamos con hojas de cálculo de Excel, a menudo necesitamos fusionar y despejar células. Para fusionar las células en Python, se puede usar una función simple basada en OpenPyXL. El módulo OpenPyXL ofrece el método Merge_Cells (), que puede usarse para fusionar las celdas en Excel. La nueva celda tomará el nombre de la celda superior izquierda. Por ejemplo, si queremos fusionar las células de la celda A1 a la celda B2, entonces la célula 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.

>>> # Importar módulo OpenPyXL
>>> importar openpyxl
>>> # Libro de trabajo de carga
>>> Work_book = OpenPyxl.Load_workbook ('Ejemplo.xlsx ')
>>> # Seleccionar la primera hoja del libro de trabajo de Excel
>>> sheet_1 = work_book ['Primera hoja']
>>> # fusionar celdas de A1 a B2 en la hoja 1
>>> hoja_1.merge_cells ('a1: b2')
>>> # Guardar libros de trabajo
>>> Work_book.Guardar ('Ejemplo.xlsx ')

Del mismo modo, el método unmerge_cells () se puede usar para deshacerse de las células en una hoja de cálculo de Excel. El siguiente código se puede usar para despejar las celdas:

>>> # Seleccionar la hoja del libro de trabajo
>>> sheet_1 = work_book ['Primera hoja']
>>> # celdas innecesas de A1 a B2
>>> hoja_1.unmerge_cells ('a1: b2')
>>> # Guardar libros de trabajo
>>> Work_book.Guardar ('Ejemplo.xlsx ')

Conclusión

Las hojas de cálculo de Excel se usan comúnmente para la manipulación de datos. Sin embargo, tales tareas pueden ser 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 las hojas de cálculo de Excel, cómo cambiar el estilo, aplicar la fuente, los bordes y las dimensiones de las células, y cómo fusionar y despejar celdas. Al aplicar estas funciones, puede automatizar muchas tareas de manipulación de hojas de cálculo utilizando Python.