Trabalhando com Excel em Swift no iOS e macOS: bibliotecas e exemplos de código

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Excel em Swift: bibliotecas e ferramentas para iOS e macOS



Ao desenvolver aplicativos para iOS e macOS, muitas vezes surge a necessidade de importar, exportar ou processar dados no formato Excel (XLSX, CSV). Na plataforma Apple não há suporte nativo para formatos Excel, portanto os desenvolvedores utilizam bibliotecas de terceiros. Neste artigo, analisaremos três ferramentas populares: CoreXLSX, XLSXWriter e SwiftCSV, além de fornecer exemplos práticos de código em Swift.



1. CoreXLSX — leitura e escrita de XLSX



CoreXLSX é uma biblioteca leve para ler e criar arquivos XLSX. Baseada no padrão Open XML, suporta strings, números, datas, fórmulas e estilos.



Instalação

// Swift Package Managerdependencies: [    .package(url: "https://github.com/CoreOffice/CoreXLSX.git", from: "0.14.0")]


Exemplo: leitura de dados do Excel

import CoreXLSX

func readExcel(path: String) { guard let file = XLSXFile(filepath: path) else { print("Erro ao abrir o arquivo") return } do { for path in try file.parseWorksheetPaths() { let worksheet = try file.parseWorksheet(at: path) let rows = worksheet.data?.rows ?? [] for row in rows { let values = row.cells.compactMap { $0.value } print(values.joined(separator: "\\t")) } } } catch { print("Erro de leitura: \\(error)") }}


Exemplo: criação de um novo arquivo XLSX

import CoreXLSX

func createExcel() { let header = ["Nome", "Idade", "Cidade"] let data = [ ["Ana", "25", "Moscou"], ["Boris", "30", "São Petersburgo"] ] var sharedStrings = SharedStrings() let headerRefs = header.map { sharedStrings.append(string: $0) } let dataRefs = data.map { row in row.map { sharedStrings.append(string: $0) } } let headerRow = Row(cells: headerRefs.enumerated().map { (index, ref) in Cell(reference: "\\(Character(UnicodeScalar(65 + index)!))1", type: .string, value: ref) }) let dataRows = dataRefs.enumerated().map { (rowIndex, row) in Row(cells: row.enumerated().map { (colIndex, ref) in let colRef = Character(UnicodeScalar(65 + colIndex)!) return Cell(reference: "\\(colRef)\\(rowIndex + 2)", type: .string, value: ref) }) } let worksheet = Worksheet(data: Data(rows: [headerRow] + dataRows)) let file = XLSXFile(sharedStrings: sharedStrings, worksheets: [worksheet]) do { try file.write(to: URL(fileURLWithPath: "/tmp/example.xlsx")) print("Arquivo salvo") } catch { print("Erro de escrita: \\(error)") }}


2. XLSXWriter — escrita rápida de arquivos grandes



XLSXWriter é uma biblioteca focada em desempenho na escrita. Adequada para exportar milhares de linhas, suporta estilos, mesclagem de células e gráficos.



Instalação

// Via CocoaPodspod 'XLSXWriter'


Exemplo: escrita de dados com formatação

import XLSXWriter

func writeFormattedExcel() { let workbook = Workbook() let sheet = workbook.addSheet(named: "Relatório") // Estilos let headerStyle = CellStyle() headerStyle.font = Font(name: "Helvetica", size: 14, bold: true) headerStyle.fill = Fill(color: .lightGray) let dataStyle = CellStyle() dataStyle.font = Font(name: "Helvetica", size: 12) dataStyle.border = Border(top: .thin, bottom: .thin) // Cabeçalhos sheet.write(row: 0, column: 0, value: "Produto", style: headerStyle) sheet.write(row: 0, column: 1, value: "Preço", style: headerStyle) sheet.write(row: 0, column: 2, value: "Quantidade"

Recommendations