Cómo Escribir Archivos XLSX con Python | Spire.XLS

Cómo Escribir Archivos XLSX con Python | Spire.XLS

2025-06-30 05:58:46

Instalar a través de NuGet

PM> Install-Package Spire.XLS

Enlaces relacionados

La escritura eficiente de archivos de Excel es esencial en los flujos de trabajo basados en Python para el análisis de datos, la generación de informes y la automatización. Entre las muchas bibliotecas disponibles, Spire.XLS for Python se destaca como una solución potente e independiente de Excel que admite funciones complejas como gráficos, fórmulas, formato condicional, cifrado y manejo de grandes conjuntos de datos.

Esta guía mostrará cómo escribir archivos XLSX con Python usando Spire.XLS for Python, cubriendo detalles desde la escritura básica hasta el formato avanzado, todo mientras se utiliza la biblioteca de Excel confiable y lista para la empresa.

Escribir archivos XLSX con código Python

Cómo escribir archivos XLSX con Spire.XLS for Python

¿Por qué usar Spire.XLS for Python?

Spire.XLS for Python es una biblioteca rica en funciones que permite a los desarrolladores leer, escribir y manipular archivos de Excel sin necesidad de Microsoft Office. Está diseñada para ofrecer rendimiento y flexibilidad, lo que la hace ideal para tareas de automatización e informes a gran escala.

Beneficios clave:

  • API todo en uno: Lee/escribe .xls y .xlsx, formatea celdas, inserta fórmulas, convierte archivos y más.
  • Soporte multiplataforma: Disponible para .NET, Java, Python y compatible con entornos basados en la nube.
  • Funciones avanzadas de Excel: Admite gráficos, tablas dinámicas, formato condicional y protección.
  • Documentación y soporte confiables: Amplia referencia de API, tutoriales, foro de desarrolladores y equipo de soporte.
  • Edición gratuita disponible: Ideal para el procesamiento ligero de archivos de Excel sin costos de licencia.

Instalación de Spire.XLS for Python

Puede instalar la versión completa o la versión gratuita de Spire.XLS según sus requisitos.

Versión completa:

pip install spire.xls

Versión gratuita (para archivos más pequeños y casos de uso básicos):

pip install spire.xls.free

Pasos básicos para escribir archivos XLSX

Para escribir en archivos de Excel usando Python, siga estos pasos fundamentales:

  • Cree un nuevo libro de Excel a través del constructor Workbook().
  • Cargue un archivo XLSX existente (opcional) con el método Workbook.LoadFromFile().
  • Agregue u obtenga una hoja de cálculo usando el método Workbook.Worksheets.Add() o el método get_Item().
  • Acceda a las celdas a través del método Worksheet.Range.get_Item().
  • Escriba datos usando las propiedades de la clase CellRange, como Value, Text, NumberValue, etc.
  • Guarde el libro de trabajo usando el método Workbook.SaveToFile().

Ejemplo de código de escritura básica de archivos XLSX

  • Python
from spire.xls import Workbook, ExcelVersion

# Crear un objeto Workbook
workbook = Workbook()

# Obtener la primera hoja de cálculo predeterminada
sheet = workbook.Worksheets.get_Item(0)

# Escribir una cadena en la celda B2
sheet.Range.get_Item(2, 2).Text = "¡Hola, mundo!"

# Guardar el libro de trabajo
workbook.SaveToFile("output/BasicWorkbook.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

El archivo XLSX de salida:

Escribir un archivo XLSX simple con Python

Escribir diferentes tipos de datos en archivos XLSX usando Python

Spire.XLS ofrece una serie de propiedades en la clase CellRange que admiten la escritura de varios tipos de datos directamente en las celdas de Excel, como cadenas, valores de fecha y hora, valores booleanos y valores numéricos. Esto facilita a los desarrolladores la escritura de valores tipados directamente en las celdas de un archivo XLSX.

Tipos de datos admitidos y sus propiedades

Propiedad Tipo de valor Función
NumberValue float Establece un valor numérico
Text str Establece texto sin formato
DateTimeValue datetime Establece una fecha y hora
BooleanValue bool Establece un valor booleano
Formula str Inserta una fórmula
HtmlString str Inserta texto con formato HTML
Value str Establece un valor genérico

Ejemplo de código – Escribir varios tipos de datos

  • Python
from spire.xls import Workbook, ExcelVersion, DateTime, HorizontalAlignType, Stream, ImageFormatType

# Crear un objeto Workbook
workbook = Workbook()

# Obtener la primera hoja de cálculo predeterminada
sheet = workbook.Worksheets.get_Item(0)

# Escribir texto en la celda B1
sheet.Range.get_Item(1, 2).Text = "Texto sin formato"
# Escribir un número en la celda B2
sheet.Range.get_Item(2, 2).NumberValue = 123456
sheet.Range.get_Item(2, 2).NumberFormat = "#,##0.00"
# Escribir una fecha en la celda B3
sheet.Range.get_Item(3, 2).DateTimeValue = DateTime.get_UtcNow()
# Escribir un valor booleano en la celda B4
sheet.Range.get_Item(4, 2).BooleanValue = True
# Escribir una fórmula en la celda B5
sheet.Range.get_Item(5, 2).Formula = "B2/2"
# Escribir una cadena HTML en la celda B6
sheet.Range.get_Item(6, 2).HtmlString = "<p><span style='color: blue; font-size: 18px;'>Fuente azul tamaño 18 píxeles</span></p>"
# Escribir un valor regular en la celda B7
sheet.Range.get_Item(7, 2).Value = "Valor regular"
# Insertar una imagen en la celda B8
with open("Logo.png", "rb") as f:
    imageBytes = f.read()
stream = Stream(imageBytes)
sheet.Pictures.Add(8, 2, stream, ImageFormatType.Png)

# Establecer formato básico
sheet.Range.get_Item(1, 2, 8, 2).HorizontalAlignment = HorizontalAlignType.Left
sheet.AutoFitColumn(2)
for i in range(sheet.Range.Columns.Count):
    for j in range(sheet.Range.Rows.Count):
        sheet.Range.get_Item(j + 1, i + 1).HorizontalAlignment = HorizontalAlignType.Left

# Guardar el libro de trabajo en un archivo XLSX
workbook.SaveToFile("output/WriteDataExcelCell.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

El archivo XLSX de salida:

Escribir diferentes tipos de datos en un archivo XLSX con código Python

Aplicar formato y estilos a las celdas de Excel con Python

El formato juega un papel clave para que los informes de Excel sean claros y profesionales. Con Spire.XLS for Python, puede personalizar la apariencia de las celdas usando fuentes, colores, alineación, formatos de número y estilos integrados. Estas herramientas ayudan a mejorar la legibilidad y a presentar sus datos de una manera pulida y consistente, ideal para la generación de informes y la automatización.

El siguiente ejemplo de código muestra cómo dar formato a las hojas de cálculo usando Python.

Formatear celdas con fuente, color, borde y alineación

  • Python
from spire.xls import Workbook, Color, LineStyleType, BordersLineType, HorizontalAlignType

# Crear un objeto Workbook
workbook = Workbook()

# Cargar el archivo XLSX
workbook.LoadFromFile("Sample.xlsx")

# Obtener la primera hoja de cálculo
sheet = workbook.Worksheets.get_Item(0)

# Establecer los estilos de fuente
# Fila de encabezado
sheet.Rows.get_Item(0).Style.Font.FontName = "Times New Roman"
sheet.Rows.get_Item(0).Style.Font.Size = 14
sheet.Rows.get_Item(0).Style.Font.IsBold = True
# Filas de datos
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.Font.FontName = "Arial"
    sheet.Rows.get_Item(i).Style.Font.Size = 12

# Establecer los colores de las celdas
# Fila de encabezado
sheet.Rows.get_Item(0).Style.Color = Color.FromRgb(200, 245, 230)
# Filas de datos
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.Color = Color.FromRgb(240, 255, 250)

# Establecer los estilos de borde
# Fila de encabezado
sheet.Rows.get_Item(0).Style.Borders.get_Item(BordersLineType.EdgeBottom).LineStyle = LineStyleType.Thick
sheet.Rows.get_Item(0).Style.Borders.get_Item(BordersLineType.EdgeBottom).Color = Color.get_White()
# Filas de datos
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).BorderInside(LineStyleType.Thin, Color.get_Black())

# Establecer la alineación
# Fila de encabezado
sheet.Rows.get_Item(0).Style.HorizontalAlignment = HorizontalAlignType.Center
# Filas de datos
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.HorizontalAlignment = HorizontalAlignType.Left

# Ajustar automáticamente el ancho de la columna
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Guardar el archivo de Excel
workbook.SaveToFile("output/FormatXLSXFile.xlsx")
workbook.Dispose()

El archivo XLSX de salida:

Formatear celdas en archivos XLSX con código Python

Establecer formatos de número para las celdas

  • Python
from spire.xls import Workbook, ExcelVersion

# Crear una instancia de Workbook
workbook = Workbook()

# Obtener la primera hoja de cálculo
sheet = workbook.Worksheets.get_Item(0)

# Formatear una celda como número
sheet.Range.get_Item(1, 2).NumberValue = 1234567890
sheet.Range.get_Item(1, 2).NumberFormat = "[Red]#,##0;[Green]#,##0"

# Formatear una celda como fecha
sheet.Range.get_Item(2, 2).NumberValue = 45562
sheet.Range.get_Item(2, 2).NumberFormat = "yyyy-mm-dd"

# Formatear una celda como hora
sheet.Range.get_Item(3, 2).NumberValue = 45562
sheet.Range.get_Item(3, 2).NumberFormat = "hh:mm:ss"

# Formatear una celda como moneda
sheet.Range.get_Item(4, 2).NumberValue = 1234567890
sheet.Range.get_Item(4, 2).NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"

# Formatear una celda como porcentaje
sheet.Range.get_Item(5, 2).NumberValue = 0.1234567890
sheet.Range.get_Item(5, 2).NumberFormat = "0.00%"

# Formatear una celda como fracción
sheet.Range.get_Item(6, 2).NumberValue = 0.1234567890
sheet.Range.get_Item(6, 2).NumberFormat = "0.00_ ?"

# Formatear una celda como número científico
sheet.Range.get_Item(7, 2).NumberValue = 1234567890
sheet.Range.get_Item(7, 2).NumberFormat = "0.00E+00"

# Ajustar automáticamente el ancho de la columna
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Guardar el archivo de Excel
workbook.SaveToFile("output/SetNumberFormat.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

El archivo XLSX de salida:

Establecer formatos de número para celdas en archivos XLSX con Python

Aplicar estilos integrados a las celdas

  • Python
from spire.xls import Workbook, BuiltInStyles

# Crear una instancia de Workbook
workbook = Workbook()

# Cargar el archivo de Excel
workbook.LoadFromFile("Sample.xlsx")

# Obtener la primera hoja de cálculo
sheet = workbook.Worksheets.get_Item(0)

# Aplicar estilo de encabezado integrado a la primera fila
sheet.Rows.get_Item(0).BuiltInStyle = BuiltInStyles.Heading2

# Aplicar estilo de pie de página integrado a las filas de datos
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).BuiltInStyle = BuiltInStyles.Accent2_20

# Ajustar automáticamente el ancho de la columna
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Guardar el archivo de Excel
workbook.SaveToFile("output/ApplyBuiltInStyle.xlsx")
workbook.Dispose()

El archivo XLSX de salida:

Aplicar estilos integrados a archivos XLSX con Python

Conclusión

En esta guía, exploramos cómo escribir archivos XLSX con Python usando Spire.XLS, desde la escritura básica hasta el formato. Ya sea para generar informes, automatizar exportaciones o crear aplicaciones basadas en datos, Spire.XLS for Python ofrece una solución confiable y eficiente para la generación de archivos de Excel.

Obtenga una licencia gratuita

Puede solicitar una licencia de prueba gratuita de 30 días para la versión completa de Spire.XLS for Python. Esto le permite explorar todas las funciones avanzadas sin limitaciones durante el período de prueba.

Véase también