Trabajando con archivos de Excel en Python usando Xlwings

Xlwings es una biblioteca de Python que facilita llamar a Python desde Excel y viceversa. Crea lectura y escritura hacia y desde Excel usando Python fácilmente. También se puede modificar para que actúe como un servidor de Python para Excel para intercambiar datos de forma síncrona entre Python y Excel. Xlwings facilita la automatización de Excel con Python y se puede utilizar para generar un informe automático, crear funciones incrustadas de Excel, manipular bases de datos de Excel o CSV, etc.
 

Instalación:
El entorno virtual se utiliza para separar el entorno de un proyecto (bibliotecas, variables de entorno, etc.), etc., de otro proyecto y del entorno global de la misma máquina. Este paso es opcional ya que no siempre es necesario crear un entorno virtual para un proyecto. Usaremos un paquete de python virtualenv para este propósito. 
 

virtualenv env
.\env\scripts\activate

Y el entorno virtual está listo.  

pip install xlwings

 Para comenzar a usar Xlwings , hay ciertos pasos básicos que se deben realizar casi siempre. Esto incluye abrir un archivo de Excel, ver la hoja disponible y luego seleccionar una hoja. 
Hoja 1 del archivo data.xlsx. 

Excel utilizado: Haga clic aquí
 

https://drive.google.com/file/d/1ZoT_y-SccAslpD6HWTgCn9N-iiKqw_pA/view?usp=sharing

A continuación se muestran algunos ejemplos que muestran cómo realizar varias operaciones utilizando la biblioteca Xlwings:

Ejemplo 1:

Python3

# Python program to
# access Excel files
  
# Import required library
import xlwings as xw
  
# Opening an excel file
wb = xw.Book('data.xlsx')
  
# Viewing available
# sheets in it
wks = xw.sheets
print("Available sheets :\n", wks)
  
# Selecting a sheet
ws = wks[0]
  
# Selecting a value
# from the selected sheet
val = ws.range("A1").value
print("A value in sheet1 :", val)

Producción: 

Los valores se pueden seleccionar de una hoja de Excel especificando una celda, fila, columna o área. No se recomienda seleccionar la fila o columna completa, ya que una fila o columna completa en Excel es bastante larga, por lo que daría como resultado una larga lista de Ninguno final. Seleccionar un rango de datos 2D dará como resultado una lista de listas de datos. 

Ejemplo 2:

Python3

# Python3 code to select
# data from excel
import xlwings as xw
  
# Specifying a sheet
ws = xw.Book("data.xlsx").sheets['Sheet1']
  
# Selecting data from
# a single cell
v1 = ws.range("A2").value
v2 = ws.range("A3").value
print("Result :", v1, v2)
  
# Selecting entire
# rows and columns
r = ws.range("4:4").value
print("Row :", r)
  
c = ws.range("C:C").value
print("Column :", c)
  
# Selecting a 2D
# range of data
table = ws.range("A1:C4").value
print("Table :", table)
  
# Automatic table
# detection from
# a cell
automatic = ws.range("A1").expand().value
print("Automatic Table :", automatic)

Producción: 

Xlwings se puede usar para insertar datos en un archivo de Excel de manera similar a como se lee desde un archivo de Excel. Los datos se pueden proporcionar como una lista o una sola entrada para una determinada celda o una selección de celdas. 

Ejemplo 3:

Python3

# Python3 code to write
# data to Excel
import xlwings as xw
  
# Selecting a sheet in Excel
ws = xw.Book('data.xlsx').sheets("Sheet2")
  
# Writing one value to
# one cell
ws.range("A1").value = "geeks"
  
# Writing multiple values
# to a cell for automatic
# data placement
ws.range("B1").value = ["for", "geeks"]
  
# Writing 2D data to a cell
# to automatically put data
# into correct cells
ws.range("A2").value = [[1, 2, 3], ['a', 'b', 'c']]
  
# Writing multiple data to
# multiple cells
ws.range("A4:C4").value = ["This", "is", "awesome"]
  
# Outputting entire table
print("Table :\n", ws.range("A1").expand().value)

Producción: 

Captura de pantalla de Excel:

Publicación traducida automáticamente

Artículo escrito por deekshant149 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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