Travailler avec Excel en Swift (iOS/macOS) : Aperçu des bibliothèques et exemples de code
Le traitement des données tabulaires est l'une des tâches clés dans les applications modernes. Sur les plateformes Apple (iOS, macOS, watchOS), il n'y a pas de prise en charge intégrée du format Excel (.xlsx), c'est pourquoi les développeurs utilisent des bibliothèques tierces. Dans cet article, nous examinerons trois approches et bibliothèques principales pour travailler avec Excel en Swift : CoreXLSX, SwiftExcel et XLConnect. Vous apprendrez à lire, créer et modifier des fichiers, et obtiendrez des exemples de code prêts à l'emploi.
1. CoreXLSX — lecture et écriture de fichiers .xlsx
CoreXLSX est la bibliothèque la plus populaire pour travailler avec Excel en Swift. Elle prend en charge la lecture et l'écriture de fichiers au format Office Open XML (OOXML). La bibliothèque est écrite en Swift pur et ne nécessite pas de dépendances externes.
Installation via Swift Package Manager
// Dans Package.swift, ajoutez :dependencies: [ .package(url: "https://github.com/CoreOffice/CoreXLSX.git", from: "0.14.0")]Lecture d'un fichier Excel
import CoreXLSX
guard let filePath = Bundle.main.path(forResource: "data", ofType: "xlsx") else { print("Fichier non trouvé") 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("Cellule \\(reference) : \\(value)") } } }}Création d'un nouveau fichier
import CoreXLSX
let path = FileManager.default.temporaryDirectory.appendingPathComponent("newFile.xlsx")let file = XLSXFile(filepath: path.path)
// Créer une feuille de calcullet worksheet = Worksheet(data: DataSheet(rows: [ Row(cells: [ Cell(reference: "A1", value: "Nom"), Cell(reference: "B1", value: "Âge") ]), Row(cells: [ Cell(reference: "A2", value: "Anna"), Cell(reference: "B2", value: "25") ])]))
try file?.write(worksheet: worksheet, at: "xl/worksheets/sheet1.xml")2. SwiftExcel — une alternative légère
SwiftExcel est une bibliothèque minimaliste pour créer des fichiers Excel. Elle ne prend pas en charge la lecture de fichiers existants, mais est parfaite pour générer des rapports et exporter des données.
Installation via CocoaPods
pod 'SwiftExcel'Exemple de création d'un tableau
import SwiftExcel
let workbook = Workbook()let sheet = workbook.createSheet(named: "Rapport")
// Remplir les en-têtessheet.write(value: "Produit", column: 1, row: 1)sheet.write(value: "Prix", column: 2, row: 1)sheet.write(value: "Quantité", column: 3, row: 1)
// Donnéessheet.write(value: "Ordinateur portable", column: 1, row: 2)sheet.write(value: 1500.00, column: 2, row: 2)sheet.write(value: 10, column: 3, row: 2)
// Enregistrerlet path = FileManager.default.temporaryDirectory.appendingPathComponent("report.xlsx")try workbook.save(to: path)print("Fichier enregistré : \\(path)")3. XLConnect — travailler avec Excel via OpenXML (macOS)
XLConnect est une bibliothèque pour macOS qui utilise directement le format OpenXML. Elle prend en charge les opérations complexes : fusion de cellules, styles, formules et graphiques.
Installation via Carthage
github "SwiftStudies/XLConnect" ~> 2.0Exemple avec formules et styles
import XLConnect
let workbook = Workbook()let sheet = try workbook.createShee Aussi dans la bibliothèque
Surveillance des applications Go (Golang) : bibliothèques et outils
Internationalisation (i18n) en JavaScript (Node.js) : la bibliothèque i18next
Bibliothèque GraphQL en C++ : implémentation d'API avec graphql-cpp
Mise en cache dans Node.js : Redis, Memcached et Node-Cache