Trabajo con Excel en Swift: Guía completa de bibliotecas y herramientas para iOS/macOS

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con Excel en Swift (iOS/macOS): Revisión de bibliotecas y ejemplos de código



El procesamiento de datos tabulares es una de las tareas clave en las aplicaciones modernas. En las plataformas de Apple (iOS, macOS, watchOS) no hay soporte integrado para el formato Excel (.xlsx), por lo que los desarrolladores utilizan bibliotecas de terceros. En este artículo, analizaremos tres enfoques y bibliotecas principales para trabajar con Excel en Swift: CoreXLSX, SwiftExcel y XLConnect. Aprenderá a leer, crear y editar archivos, y también obtendrá ejemplos de código listos para usar.



1. CoreXLSX — lectura y escritura de archivos .xlsx



CoreXLSX es la biblioteca más popular para trabajar con Excel en Swift. Admite la lectura y escritura de archivos en formato Office Open XML (OOXML). La biblioteca está escrita en Swift puro y no requiere dependencias externas.



Instalación mediante Swift Package Manager

// En Package.swift agregue:dependencies: [    .package(url: "https://github.com/CoreOffice/CoreXLSX.git", from: "0.14.0")]


Lectura de un archivo Excel

import CoreXLSX

guard let filePath = Bundle.main.path(forResource: "data", ofType: "xlsx") else { print("Archivo no encontrado") return}

let file = try XLSXFile(filepath: filePath)let sharedStrings = try file?.parseSharedStrings()let worksheets = try file?.parseWorksheetPaths()

for worksheetPath in worksheets ?? [] { let worksheet = try file?.parseWorksheet(at: worksheetPath) let rows = worksheet?.data?.rows ?? [] for row in rows { for cell in row.cells { if let sharedStrings = sharedStrings { let reference = cell.reference let value = cell.stringValue(sharedStrings) ?? cell.value ?? "" print("Celda \\(reference): \\(value)") } } }}


Creación de un nuevo archivo

import CoreXLSX

let path = FileManager.default.temporaryDirectory.appendingPathComponent("newFile.xlsx")let file = XLSXFile(filepath: path.path)

// Creamos una hoja de trabajolet worksheet = Worksheet(data: DataSheet(rows: [ Row(cells: [ Cell(reference: "A1", value: "Nombre"), Cell(reference: "B1", value: "Edad") ]), Row(cells: [ Cell(reference: "A2", value: "Ana"), Cell(reference: "B2", value: "25") ])]))

try file?.write(worksheet: worksheet, at: "xl/worksheets/sheet1.xml")


2. SwiftExcel — alternativa ligera



SwiftExcel es una biblioteca minimalista para crear archivos Excel. No admite la lectura de archivos existentes, pero es ideal para generar informes y exportar datos.



Instalación mediante CocoaPods

pod 'SwiftExcel'


Ejemplo de creación de tabla

import SwiftExcel

let workbook = Workbook()let sheet = workbook.createSheet(named: "Informe")

// Rellenamos los encabezadossheet.write(value: "Producto", column: 1, row: 1)sheet.write(value: "Precio", column: 2, row: 1)sheet.write(value: "Cantidad", column: 3, row: 1)

// Datossheet.write(value: "Portátil", column: 1, row: 2)sheet.write(value: 1500.00, column: 2, row: 2)sheet.write(value: 10, column: 3, row: 2)

// Guardamoslet path = FileManager.default.temporaryDirectory.appendingPathComponent("report.xlsx")try workbook.save(to: path)print("Archivo guardado: \\(path)")


3. XLConnect — trabajo con Excel mediante OpenXML (macOS)



XLConnect es una biblioteca para macOS que utiliza el formato OpenXML directamente. Admite operaciones complejas: combinación de celdas, estilos, fórmulas y gráficos.



Instalación mediante Carthage

github "SwiftStudies/XLConnect" ~> 2.0


Ejemplo con fórmulas y estilos

import XLConnect

let workbook = Workbook()let sheet = try workbook.createShee

Recommendations