العمل مع Excel في Swift: دليل شامل للمكتبات والأدوات لنظامي iOS/macOS

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع 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

توصيات