CSVImporter:在Swift中处理CSV

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是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+。

推荐