العمل مع Excel في Swift (iOS/macOS): نظرة عامة على المكتبات وأمثلة كود
معالجة البيانات الجدولية هي إحدى المهام الأساسية في التطبيقات الحديثة. على منصات Apple (iOS، macOS، watchOS) لا يوجد دعم مدمج لتنسيق Excel (.xlsx)، لذلك يستخدم المطورون مكتبات خارجية. في هذه المقالة، سنستعرض ثلاثة مناهج ومكتبات رئيسية للعمل مع Excel في Swift: CoreXLSX وSwiftExcel وXLConnect. ستتعلم كيفية قراءة وإنشاء وتحرير الملفات، بالإضافة إلى الحصول على أمثلة كود جاهزة.
1. CoreXLSX — قراءة وكتابة ملفات .xlsx
CoreXLSX هي المكتبة الأكثر شيوعًا للعمل مع Excel في Swift. تدعم قراءة وكتابة ملفات تنسيق Office Open XML (OOXML). المكتبة مكتوبة بلغة Swift النقية ولا تتطلب تبعيات خارجية.
التثبيت عبر Swift Package Manager
// في Package.swift أضف:dependencies: [ .package(url: "https://github.com/CoreOffice/CoreXLSX.git", from: "0.14.0")]قراءة ملف Excel
import CoreXLSX
guard let filePath = Bundle.main.path(forResource: "data", ofType: "xlsx") else { print("الملف غير موجود") 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("الخلية \\(reference): \\(value)") } } }}إنشاء ملف جديد
import CoreXLSX
let path = FileManager.default.temporaryDirectory.appendingPathComponent("newFile.xlsx")let file = XLSXFile(filepath: path.path)
// إنشاء ورقة عملlet worksheet = Worksheet(data: DataSheet(rows: [ Row(cells: [ Cell(reference: "A1", value: "الاسم"), Cell(reference: "B1", value: "العمر") ]), Row(cells: [ Cell(reference: "A2", value: "آنا"), Cell(reference: "B2", value: "25") ])]))
try file?.write(worksheet: worksheet, at: "xl/worksheets/sheet1.xml")2. SwiftExcel — بديل خفيف الوزن
SwiftExcel هي مكتبة بسيطة لإنشاء ملفات Excel. لا تدعم قراءة الملفات الموجودة، ولكنها مناسبة تمامًا لتوليد التقارير وتصدير البيانات.
التثبيت عبر CocoaPods
pod 'SwiftExcel'مثال لإنشاء جدول
import SwiftExcel
let workbook = Workbook()let sheet = workbook.createSheet(named: "تقرير")
// ملء العناوينsheet.write(value: "المنتج", column: 1, row: 1)sheet.write(value: "السعر", column: 2, row: 1)sheet.write(value: "الكمية", column: 3, row: 1)
// البياناتsheet.write(value: "لابتوب", column: 1, row: 2)sheet.write(value: 1500.00, column: 2, row: 2)sheet.write(value: 10, column: 3, row: 2)
// حفظlet path = FileManager.default.temporaryDirectory.appendingPathComponent("report.xlsx")try workbook.save(to: path)print("تم حفظ الملف: \\(path)")3. XLConnect — العمل مع Excel عبر OpenXML (macOS)
XLConnect هي مكتبة لنظام macOS تستخدم تنسيق OpenXML مباشرة. تدعم العمليات المعقدة: دمج الخلايا، الأنماط، الصيغ والرسوم البيانية.
التثبيت عبر Carthage
github "SwiftStudies/XLConnect" ~> 2.0مثال مع الصيغ والأنماط
import XLConnect
let workbook = Workbook()let sheet = try workbook.createShee