Trabalhando com Excel em Swift (iOS/macOS): Visão geral das bibliotecas e exemplos de código
O processamento de dados tabulares é uma das principais tarefas em aplicativos modernos. Nas plataformas Apple (iOS, macOS, watchOS) não há suporte nativo para o formato Excel (.xlsx), por isso os desenvolvedores usam bibliotecas de terceiros. Neste artigo, veremos três abordagens principais e bibliotecas para trabalhar com Excel em Swift: CoreXLSX, SwiftExcel e XLConnect. Você aprenderá a ler, criar e editar arquivos, além de obter exemplos de código prontos.
1. CoreXLSX — leitura e escrita de arquivos .xlsx
CoreXLSX é a biblioteca mais popular para trabalhar com Excel em Swift. Ela suporta leitura e escrita de arquivos no formato Office Open XML (OOXML). A biblioteca é escrita em Swift puro e não requer dependências externas.
Instalação via Swift Package Manager
// Em Package.swift adicione:dependencies: [ .package(url: "https://github.com/CoreOffice/CoreXLSX.git", from: "0.14.0")]Lendo um arquivo Excel
import CoreXLSX
guard let filePath = Bundle.main.path(forResource: "data", ofType: "xlsx") else { print("Arquivo não 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("Célula \\(reference): \\(value)") } } }}Criando um novo arquivo
import CoreXLSX
let path = FileManager.default.temporaryDirectory.appendingPathComponent("newFile.xlsx")let file = XLSXFile(filepath: path.path)
// Criando uma planilhalet worksheet = Worksheet(data: DataSheet(rows: [ Row(cells: [ Cell(reference: "A1", value: "Nome"), Cell(reference: "B1", value: "Idade") ]), 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 leve
SwiftExcel é uma biblioteca minimalista para criar arquivos Excel. Ela não suporta leitura de arquivos existentes, mas é excelente para geração de relatórios e exportação de dados.
Instalação via CocoaPods
pod 'SwiftExcel'Exemplo de criação de tabela
import SwiftExcel
let workbook = Workbook()let sheet = workbook.createSheet(named: "Relatório")
// Preenchendo cabeçalhossheet.write(value: "Produto", column: 1, row: 1)sheet.write(value: "Preço", column: 2, row: 1)sheet.write(value: "Quantidade", column: 3, row: 1)
// Dadossheet.write(value: "Notebook", column: 1, row: 2)sheet.write(value: 1500.00, column: 2, row: 2)sheet.write(value: 10, column: 3, row: 2)
// Salvandolet path = FileManager.default.temporaryDirectory.appendingPathComponent("report.xlsx")try workbook.save(to: path)print("Arquivo salvo: \\(path)")3. XLConnect — trabalhando com Excel via OpenXML (macOS)
XLConnect é uma biblioteca para macOS que usa o formato OpenXML diretamente. Ela suporta operações complexas: mesclagem de células, estilos, fórmulas e gráficos.
Instalação via Carthage
github "SwiftStudies/XLConnect" ~> 2.0Exemplo com fórmulas e estilos
import XLConnect
let workbook = Workbook()let sheet = try workbook.createShee Também na biblioteca
rig para Rust: guia completo com exemplos práticos
Laravel Telescope para PHP: guia completo com exemplos práticos
Agendador de tarefas em TypeScript: guia completo sobre bibliotecas cron e temporizadores
Viper para Go: guia completo com exemplos