什么是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 → 粘贴仓库 URL。
主要功能
- 自动检测分隔符 — 支持逗号、分号、制表符。
- 流式解析 — 处理任意大小的文件,无需完全加载到内存中。
- 编码支持 — 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+。