ما هو CSVImporter ولماذا هو مطلوب؟
CSVImporter هي مكتبة خفيفة الوزن بلغة Swift (لـ iOS/macOS) تعمل على تبسيط استيراد وتحليل وتصدير ملفات CSV. على عكس Foundation القياسي، توفر CSVImporter أدوات جاهزة لمعالجة البيانات الجدولية الكبيرة، والتحديد التلقائي للفواصل، والعمل مع الترميزات. المكتبة مثالية للتطبيقات التي تتطلب تحميل البيانات من مصادر خارجية: التقارير المحاسبية، قوائم جهات الاتصال، مجموعات البيانات للتعلم الآلي، أو ملفات التهيئة.
التثبيت
يتم تثبيت CSVImporter عبر Swift Package Manager. أضف التبعية في Package.swift:
.package(url: "https://github.com/Flinesoft/CSVImporter.git", from: "1.9.0")أو عبر Xcode: File → Add Packages → الصق رابط المستودع.
الوظائف الأساسية
- التحديد التلقائي للفاصل — يدعم الفواصل، الفواصل المنقوطة، وعلامات التبويب.
- التحليل التدفقي — يعالج الملفات بأي حجم دون تحميلها بالكامل في الذاكرة.
- دعم الترميزات — UTF-8, Windows-1251, ISO Latin-1.
- الكتابة المرنة — تحويل السلاسل النصية إلى Int, Double, Date وهياكل مخصصة.
- التصدير — إنشاء CSV من مصفوفات القواميس.
مثال كود بلغة Swift
import CSVImporter
// استيراد من ملفlet path = Bundle.main.path(forResource: "data", ofType: "csv")!let importer = CSVImporter<[String]>(path: path)let records = importer.importRecords { $0 } // [["Name", "Age"], ["Alice", "30"], ...]
// تحليل مع رؤوس الأعمدةlet structured = importer.importRecords { record in return Person(name: record[0], age: Int(record[1]) ?? 0)}
// تصديرlet data = [["Name", "Age"], ["Bob", "25"]]let csvString = data.csvString() // "Name,AgeBob,25"try? csvString.write(to: URL(fileURLWithPath: "/tmp/output.csv"), atomically: true, encoding: .utf8)متى تستخدم CSVImporter؟
- عند العمل مع البيانات الجدولية من Excel/Google Sheets.
- في تطبيقات تحليل المالية، إدارة المخزون، أو إجراء الإحصائيات.
- عند ترحيل البيانات بين الخدمات (مثل استيراد جهات الاتصال من CSV).
- في أدوات macOS لمعالجة السجلات أو التهيئات.
المكتبة مستقرة، ولديها تغطية اختبارية 100%، وتدعمها المجتمع منذ عام 2016. مناسبة لـ iOS 13+، macOS 10.15+.