Leer archivos de Excel con Python

2023-12-28 02:47:48

Los archivos de Excel (hojas de cálculo) son utilizados por personas de todo el mundo para organizar, analizar y almacenar datos tabulares. Debido a su popularidad, los desarrolladores frecuentemente se encuentran con situaciones en las que necesitan extraer datos de Excel o crear informes en formato Excel. Siendo capaz de leer archivos de Excel con Python abre un amplio conjunto de posibilidades para el procesamiento y la automatización de datos. En este artículo, aprenderá cómo leer datos (texto o valores numéricos) de una celda, un rango de celdas o una hoja de trabajo completa utilizando la biblioteca Spire.XLS for Python.

Biblioteca Python para leer Excel

Spire.XLS for Python es una biblioteca Python confiable de nivel empresarial para crear, escribir, leer y editando excel documentos (XLS, XLSX, XLSB, XLSM, ODS) en una aplicación Python. Proporciona un conjunto completo de interfaces, clases y propiedades que permiten a los programadores leer y escribir sobresalir archivos con facilidad. Específicamente, se puede acceder a una celda de un libro mediante la propiedad Worksheet.Range y se puede obtener el valor de la celda mediante la propiedad CellRange.Value.

La biblioteca es fácil de instalar ejecutando el siguiente comando pip. Si desea importar manualmente las dependencias necesarias, consulte Cómo instalar Spire.XLS for Python en VS Code

pip install Spire.XLS

Clases y propiedades en Spire.XLS para la API de Python

  • Clase de libro de trabajo: representa un modelo de libro de trabajo de Excel, que puede usar para crear un libro de trabajo desde cero o cargar un documento de Excel existente y realizar modificaciones en él.
  • Clase de hoja de trabajo: representa una hoja de trabajo en un libro de trabajo.
  • Clase CellRange: representa una celda específica o un rango de celdas en un libro.
  • Propiedad Worksheet.Range: obtiene una celda o un rango y devuelve un objeto de la clase CellRange.
  • Propiedad Worksheet.AllocatedRange: obtiene el rango de celdas que contiene datos y devuelve un objeto de la clase CellRange.
  • Propiedad CellRange.Value: obtiene el valor numérico o el valor de texto de una celda. Pero si una celda tiene una fórmula, esta propiedad devuelve la fórmula en lugar del resultado de la fórmula.

Leer datos de una celda particular en Python

Con Spire.XLS for Python, puede obtener fácilmente el valor de una determinada celda utilizando la propiedad CellRange.Value. Los pasos para leer datos de una celda particular de Excel en Python son los siguientes.

  • Crear instancias de la clase de libro de trabajo
  • Cargue un documento de Excel utilizando el método LoadFromFile.
  • Obtenga una hoja de trabajo específica usando la propiedad Workbook.Worksheets[index].
  • Obtenga una celda específica usando la propiedad Worksheet.Range.
  • Obtenga el valor de la celda usando la propiedad CellRange.Value
  • Python
from spire.xls import *
from spire.xls.common import *

# Create a Workbook object
wb = Workbook()

# Load an Excel file
wb.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Data.xlsx");

# Get a specific worksheet
sheet = wb.Worksheets[0]

# Get a specific cell
certainCell = sheet.Range["D9"]

# Get the value of the cell
print("D9 has the value: " + certainCell.Value)

Read Excel Files with Python

Leer datos de un rango de celdas en Python

Ya sabemos cómo obtener el valor de una celda, para obtener los valores de un rango de celdas, como ciertas filas o columnas, solo necesitamos usar declaraciones de bucle para recorrer las celdas y luego extraerlas una por una. Los pasos para leer datos de un rango de celdas de Excel en Python son los siguientes.

  • Crear instancias de la clase de libro de trabajo
  • Cargue un documento de Excel utilizando el método LoadFromFile.
  • Obtenga una hoja de trabajo específica usando la propiedad Workbook.Worksheets[index].
  • Obtenga un rango de celdas específico usando la propiedad Worksheet.Range.
  • Utilice declaraciones de bucle for para recuperar cada celda del rango y obtener el valor de una celda específica utilizando la propiedad CellRange.Value
  • Python
from spire.xls import *
from spire.xls.common import *

# Create a Workbook object
wb = Workbook()

# Load an existing Excel file
wb.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Data.xlsx");

# Get a specific worksheet
sheet = wb.Worksheets[0]

# Get a cell range
cellRange = sheet.Range["A2:H5"]

# Iterate through the rows
for i in range(len(cellRange.Rows)):

    # Iterate through the columns
    for j in range(len(cellRange.Rows[i].Columns)):

        # Get data of a specific cell
        print(cellRange[i + 2, j + 1].Value + "  ", end='')

    print("")

Read Excel Files with Python

Leer datos de una hoja de cálculo de Excel en Python

Spire.XLS for Python ofrece la propiedad Worksheet.AllocatedRange para obtener automáticamente el rango de celdas que contiene datos de una hoja de trabajo. Luego, recorremos las celdas dentro del rango de celdas en lugar de toda la hoja de trabajo y recuperamos los valores de las celdas uno por uno. Los siguientes son los pasos para leer datos de una hoja de cálculo de Excel en Python.

  • Crear instancias de la clase de libro de trabajo.
  • Cargue un documento de Excel utilizando el método LoadFromFile.
  • Obtenga una hoja de trabajo específica usando la propiedad Workbook.Worksheets[index].
  • Obtenga el rango de celdas que contiene datos de la hoja de trabajo usando la propiedad Worksheet.AllocatedRange.
  • Utilice declaraciones de bucle for para recuperar cada celda del rango y obtener el valor de una celda específica utilizando la propiedad CellRange.Value.
  • Python
from spire.xls import *
from spire.xls.common import *

# Create a Workbook object
wb = Workbook()

# Load an existing Excel file
wb.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Data.xlsx");

# Get the first worksheet
sheet = wb.Worksheets[0]

# Get the cell range containing data
locatedRange = sheet.AllocatedRange

# Iterate through the rows
for i in range(len(sheet.Rows)):

    # Iterate through the columns
    for j in range(len(locatedRange.Rows[i].Columns)):

        # Get data of a specific cell
        print(locatedRange[i + 1, j + 1].Value + "  ", end='')

    print("")

Read Excel Files with Python

Leer valor en lugar de fórmula en una celda en Python

Como se mencionó anteriormente, cuando una celda contiene una fórmula, la propiedad CellRange.Value devuelve la fórmula en sí, no el valor de la fórmula. Si queremos obtener el valor, debemos usar el método str(CellRange.FormulaValue). Los siguientes son los pasos para leer un valor en lugar de una fórmula en una celda de Excel en Python.

  • Crear instancias de la clase de libro de trabajo.
  • Cargue un documento de Excel utilizando el método LoadFromFile.
  • Obtenga una hoja de trabajo específica usando la propiedad Workbook.Worksheets[index].
  • Obtenga una celda específica usando la propiedad Worksheet.Range.
  • Determine si la celda tiene fórmula usando la propiedad CellRange.HasFormula.
  • Obtenga el valor de la fórmula de la celda usando el método str(CellRange.FormulaValue).
  • Python
from spire.xls import *
from spire.xls.common import *

# Create a Workbook object
wb = Workbook()

# Load an Excel file
wb.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Formula.xlsx");

# Get a specific worksheet
sheet = wb.Worksheets[0]

# Get a specific cell
certainCell = sheet.Range["D4"]

# Determine if the cell has formula
if(certainCell.HasFormula):

    # Get the formula value of the cell
    print(str(certainCell.FormulaValue))

Read Excel Files with Python

Conclusión

En esta publicación de blog, aprendimos cómo leer datos de celdas, regiones de celdas y hojas de trabajo en Python con la ayuda de Spire.XLS para la API de Python. También discutimos cómo determinar si una celda tiene una fórmula y cómo obtener el valor de la fórmula. Esta biblioteca admite la extracción de muchos otros elementos en Excel, como imágenes, hipervínculos y objetos OEL. Consulte nuestra documentación en línea para obtener más tutoriales. Si tiene alguna pregunta, comuníquese con nosotros por correo electrónico o en el foro.

Ver también