Arbeiten mit Excel in Swift (iOS/macOS): Übersicht über Bibliotheken und Codebeispiele
Die Verarbeitung von Tabellendaten ist eine der Kernaufgaben in modernen Anwendungen. Auf den Apple-Plattformen (iOS, macOS, watchOS) gibt es keine integrierte Unterstützung für das Excel-Format (.xlsx), daher verwenden Entwickler Drittanbieter-Bibliotheken. In diesem Artikel betrachten wir drei Hauptansätze und Bibliotheken für die Arbeit mit Excel in Swift: CoreXLSX, SwiftExcel und XLConnect. Sie erfahren, wie Sie Dateien lesen, erstellen und bearbeiten, und erhalten fertige Codebeispiele.
1. CoreXLSX — Lesen und Schreiben von .xlsx-Dateien
CoreXLSX ist die beliebteste Bibliothek für die Arbeit mit Excel in Swift. Sie unterstützt das Lesen und Schreiben von Dateien im Office Open XML (OOXML)-Format. Die Bibliothek ist in reinem Swift geschrieben und benötigt keine externen Abhängigkeiten.
Installation über den Swift Package Manager
// In Package.swift hinzufügen:dependencies: [ .package(url: "https://github.com/CoreOffice/CoreXLSX.git", from: "0.14.0")]Excel-Datei lesen
import CoreXLSX
guard let filePath = Bundle.main.path(forResource: "data", ofType: "xlsx") else { print("Datei nicht gefunden") 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("Zelle \\(reference): \\(value)") } } }}Neue Datei erstellen
import CoreXLSX
let path = FileManager.default.temporaryDirectory.appendingPathComponent("newFile.xlsx")let file = XLSXFile(filepath: path.path)
// Arbeitsblatt erstellenlet worksheet = Worksheet(data: DataSheet(rows: [ Row(cells: [ Cell(reference: "A1", value: "Name"), Cell(reference: "B1", value: "Alter") ]), Row(cells: [ Cell(reference: "A2", value: "Anna"), Cell(reference: "B2", value: "25") ])]))
try file?.write(worksheet: worksheet, at: "xl/worksheets/sheet1.xml")2. SwiftExcel — leichte Alternative
SwiftExcel ist eine minimalistische Bibliothek zum Erstellen von Excel-Dateien. Sie unterstützt das Lesen vorhandener Dateien nicht, eignet sich aber hervorragend zum Generieren von Berichten und zum Exportieren von Daten.
Installation über CocoaPods
pod 'SwiftExcel'Beispiel zum Erstellen einer Tabelle
import SwiftExcel
let workbook = Workbook()let sheet = workbook.createSheet(named: "Bericht")
// Kopfzeilen ausfüllensheet.write(value: "Produkt", column: 1, row: 1)sheet.write(value: "Preis", column: 2, row: 1)sheet.write(value: "Menge", column: 3, row: 1)
// Datensheet.write(value: "Laptop", column: 1, row: 2)sheet.write(value: 1500.00, column: 2, row: 2)sheet.write(value: 10, column: 3, row: 2)
// Speichernlet path = FileManager.default.temporaryDirectory.appendingPathComponent("report.xlsx")try workbook.save(to: path)print("Datei gespeichert: \\(path)")3. XLConnect — Arbeiten mit Excel über OpenXML (macOS)
XLConnect ist eine Bibliothek für macOS, die das OpenXML-Format direkt verwendet. Sie unterstützt komplexe Operationen: Zellen zusammenführen, Stile, Formeln und Diagramme.
Installation über Carthage
github "SwiftStudies/XLConnect" ~> 2.0Beispiel mit Formeln und Stilen
import XLConnect
let workbook = Workbook()let sheet = try workbook.createShee Auch in der Bibliothek
Abhängigkeitsinjektion (Dependency Injection) in C++: Container und Praxis
Datenbankmigrationen in Java: Überblick über beliebte Tools
PHP-Anwendungsüberwachung: Vollständiger Leitfaden zu Tools und Bibliotheken