Travailler avec Excel en Swift (iOS/macOS) : bibliothèques et exemples de code
Le développement d'applications pour iOS et macOS nécessite souvent une intégration avec le format Excel (.xlsx, .xls). Les outils natifs d'Apple ne fournissent pas d'API directe pour travailler avec ces fichiers, c'est pourquoi les développeurs utilisent des bibliothèques tierces. Dans cet article, nous examinerons trois options populaires : CoreXLSX, xlsxwriter et SwiftCSV, et nous fournirons des exemples pratiques pour la lecture et l'écriture de données.
1. CoreXLSX — lecture et écriture de .xlsx
CoreXLSX est une bibliothèque open source entièrement écrite en Swift. Elle est basée sur le format interne ZIP (car .xlsx est une archive ZIP contenant des fichiers XML). Elle prend en charge la lecture, l'écriture et l'édition de feuilles, de cellules et de styles.
Installation : via Swift Package Manager (SPM), ajoutez le paquet https://github.com/CoreOffice/CoreXLSX.git.
Exemple : lecture de données depuis 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("Impossible de charger le fichier") 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("Erreur d'analyse : \\(error)") }}2. xlsxwriter — création de fichiers Excel en Swift
xlsxwriter est un wrapper autour de la bibliothèque libxlsxwriter (implémentation en C). Il permet de créer des fichiers .xlsx avec mise en forme, formules et graphiques. Idéal pour la génération de rapports sur macOS et iOS.
Installation : via CocoaPods (pod 'xlsxwriter') ou SPM.
Exemple : création d'un fichier simple
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: "Rapport") // En-têtes sheet.writeString("Nom", at: column: 0, row: 0) sheet.writeString("Âge", at: column: 1, row: 0) sheet.writeString("Ville", at: column: 2, row: 0) // Données sheet.writeString("Anna", 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("Saint-Pétersbourg", at: column: 2, row: 2) workbook.close() print("Fichier créé : \\(fileURL)")}3. SwiftCSV — travail avec CSV (alternative à Excel)
Si vous n'avez pas besoin du format complet .xlsx, SwiftCSV est une bibliothèque légère pour lire et écrire des fichiers CSV. Les fichiers CSV s'ouvrent facilement dans Excel et d'autres tableurs.
Installation : via SPM : https://github.com/swiftcsv/SwiftCSV.git.
Exemple : lecture et écriture de CSV
import SwiftCSV
func csvExample() { // Lecture guard let csvURL = Bundle.main.url(forResource: "data", with Aussi dans la bibliothèque
Mise en cache dans Node.js : Redis, Memcached et Node-Cache
Codable Swift : guide complet avec exemples
BenchmarkDotNet pour C# (.NET) : guide complet avec exemples
Bibliothèque standard JavaScript (Node.js) : aperçu complet
Bibliothèque WebSocket Ratchet pour PHP : création en temps réel sur le site