Arbeiten mit Excel in Swift auf iOS und macOS: Bibliotheken und Codebeispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Excel in Swift: Bibliotheken und Werkzeuge für iOS und macOS



Bei der Entwicklung von Anwendungen für iOS und macOS besteht häufig die Notwendigkeit, Daten im Excel-Format (XLSX, CSV) zu importieren, exportieren oder zu verarbeiten. Auf der Apple-Plattform gibt es keine integrierte Unterstützung für Excel-Formate, daher verwenden Entwickler Drittanbieter-Bibliotheken. In diesem Artikel werden drei beliebte Werkzeuge behandelt: CoreXLSX, XLSXWriter und SwiftCSV, sowie praktische Codebeispiele in Swift gezeigt.



1. CoreXLSX — Lesen und Schreiben von XLSX



CoreXLSX ist eine leichtgewichtige Bibliothek zum Lesen und Erstellen von XLSX-Dateien. Sie basiert auf dem Open XML-Standard und unterstützt Zeichenfolgen, Zahlen, Daten, Formeln und Stile.



Installation

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


Beispiel: Daten aus Excel lesen

import CoreXLSX

func readExcel(path: String) { guard let file = XLSXFile(filepath: path) else { print("Fehler beim Öffnen der Datei") 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("Lesefehler: \\(error)") }}


Beispiel: Neue XLSX-Datei erstellen

import CoreXLSX

func createExcel() { let header = ["Name", "Alter", "Stadt"] let data = [ ["Anna", "25", "Moskau"], ["Boris", "30", "Sankt Petersburg"] ] 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("Datei gespeichert") } catch { print("Schreibfehler: \\(error)") }}


2. XLSXWriter — schnelles Schreiben großer Dateien



XLSXWriter ist eine Bibliothek, die auf Leistung beim Schreiben ausgelegt ist. Sie eignet sich für den Export von Tausenden von Zeilen und unterstützt Stile, Zellverbünde und Diagramme.



Installation

// Über CocoaPodspod 'XLSXWriter'


Beispiel: Daten mit Formatierung schreiben

import XLSXWriter

func writeFormattedExcel() { let workbook = Workbook() let sheet = workbook.addSheet(named: "Bericht") // Stile 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) // Überschriften sheet.write(row: 0, column: 0, value: "Produkt", style: headerStyle) sheet.write(row: 0, column: 1, value: "Preis", style: headerStyle) sheet.write(row: 0, column: 2, value: "Menge

Empfehlungen