Trabalhando com Excel em Swift no iOS e macOS: bibliotecas e exemplos

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 (iOS/macOS): bibliotecas e exemplos de código



O desenvolvimento de aplicativos para iOS e macOS frequentemente exige integração com o formato Excel (.xlsx, .xls). As ferramentas nativas da Apple não fornecem uma API direta para trabalhar com esses arquivos, então os desenvolvedores usam bibliotecas de terceiros. Neste artigo, veremos três opções populares: CoreXLSX, xlsxwriter e SwiftCSV, além de apresentar exemplos práticos para leitura e gravação de dados.



1. CoreXLSX — leitura e gravação de .xlsx

CoreXLSX é uma biblioteca de código aberto, escrita inteiramente em Swift. Ela é baseada no formato interno ZIP (já que .xlsx é um arquivo ZIP com arquivos XML). Suporta leitura, gravação e edição de planilhas, células e estilos.



Instalação: via Swift Package Manager (SPM), adicione o pacote https://github.com/CoreOffice/CoreXLSX.git.



Exemplo: leitura de dados do Excel

import CoreXLSX

func readExcelExample() { guard let filePath = Bundle.main.path(forResource: "data", ofType: "xlsx"), let data = try? Data(contentsOf: URL(fileURLWithPath: filePath)), let file = try? XLSXFile(data: data) else { print("Não foi possível carregar o arquivo") return } do { let sharedStrings = try file.parseSharedStrings() let worksheet = try file.parseWorksheet(at: "xl/worksheets/sheet1.xml") for row in worksheet.data?.rows ?? [] { var rowValues: [String] = [] for cell in row.cells { if let stringRef = cell.stringValue(sharedStrings) { rowValues.append(stringRef) } else if let value = cell.value { rowValues.append(value) } else { rowValues.append("") } } print(rowValues.joined(separator: ", ")) } } catch { print("Erro de parsing: \\(error)") }}


2. xlsxwriter — criação de arquivos Excel em Swift

xlsxwriter é um wrapper para a biblioteca libxlsxwriter (implementação em C). Permite criar arquivos .xlsx com formatação, fórmulas e gráficos. Ideal para geração de relatórios no macOS e iOS.



Instalação: via CocoaPods (pod 'xlsxwriter') ou SPM.



Exemplo: criação de um arquivo simples

import xlsxwriter

func createExcelExample() { let documentDirectory = FileManager.default.temporaryDirectory let fileURL = documentDirectory.appendingPathComponent("report.xlsx") let workbook = Workbook(path: fileURL.path) let sheet = workbook.addWorksheet(named: "Relatório") // Cabeçalhos sheet.writeString("Nome", at: column: 0, row: 0) sheet.writeString("Idade", at: column: 1, row: 0) sheet.writeString("Cidade", at: column: 2, row: 0) // Dados sheet.writeString("Ana", at: column: 0, row: 1) sheet.writeNumber(28, at: column: 1, row: 1) sheet.writeString("Moscou", at: column: 2, row: 1) sheet.writeString("Ivan", at: column: 0, row: 2) sheet.writeNumber(35, at: column: 1, row: 2) sheet.writeString("São Petersburgo", at: column: 2, row: 2) workbook.close() print("Arquivo criado: \\(fileURL)")}


3. SwiftCSV — trabalho com CSV (alternativa ao Excel)

Se você não precisa do formato completo .xlsx, SwiftCSV é uma biblioteca leve para leitura e gravação de arquivos CSV. O CSV pode ser facilmente aberto no Excel e em outros editores de planilhas.



Instalação: via SPM: https://github.com/swiftcsv/SwiftCSV.git.



Exemplo: leitura e gravação de CSV

import SwiftCSV

func csvExample() { // Leitura guard let csvURL = Bundle.main.url(forResource: "data", with

Recommendations