CSVImporter: работа с CSV в Swift

Онлайн-тренажер 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,Age\nBob,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+.

Рекомендаций