Таблица контактов CSV (.csv)

RFC Стандарт

Значения, разделённые запятыми (CSV),: это широко распространённый текстовый формат для табличных данных, в котором каждая строка представляет собой запись, а поля разделяются символами-разделителями.

Конвертировать из XLSX в CSV

Бесплатный конвертер из XLSX в CSV прямо в браузере. Конвертируйте файлы мгновенно на Вашем устройстве.

Сжатие CSV онлайн

Конфиденциально - файлы никогда не покидают ваше устройство

Анализ и метаданные

Операционные системы и анализаторы файлов идентифицируют файлы CSV по начальной двоичной последовательности байтов:

Выберите или перетащите файлы сюда

Конфиденциально - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполнялась локально в песочнице Вашего браузера.

Сигнатура заголовка на уровне байтов (Magic Bytes)

Операционные системы и анализаторы файлов идентифицируют файлы CSV по начальной двоичной последовательности байтов:

HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):

Фиксированной сигнатуры нет

ПРЕДСТАВЛЕНИЕ ASCII: Текстовые байты; кодировка может различаться

Стандартизация: RFC 4180 / IETF

Технические спецификации

Архитектура контейнераПлоский текстовый файл с разделителями, в котором строки и столбцы представляют табличные данные
СжатиеGzip / Deflate обычно сжимают повторяющиеся табличные записи на 85-95%
Порядок байтов (Endianness)Поток текста UTF-8 (необязательный BOM UTF-8 EF BB BF, используемый в Excel)
Цветовые пространстваНеприменимо
Каналы и структураСтроковые записи разделяются с помощью CRLF, а столбцы разделяются запятыми
Максимальные размерыНе ограничен по размеру; файлы размером в гигабайты можно обрабатывать потоком, не загружая их целиком в память
ПрозрачностьНеприменимо
Потоковая передача и прогрессивная загрузкаВсе конвейеры данных поддерживают встроенную построчную обработку потока

Техническая матрица сравнения: CSV с конкурентами

Технический атрибутCSV (Текущий)Excel (XLSX)ParquetJSON
Тип файлаПлоская текстовая таблицаТаблица XML в ZIP-архивеБинарное колонночное хранилищеИерархический текст
Несколько листовНет (только одна плоская таблица)Да (несколько рабочих книг и листов)Хранение с разбиением на разделыВложенные массивы и объекты
Типы данныхНетипизированный текстТипизированные ячейки, формулы, форматированиеСтрогие бинарные типы столбцовПримитивные типы (строка, число, булево)
Аналитика больших данныхМедленно (требует линейного чтения каждой строки)Не подходит для больших данныхСверхбыстро (отсечение столбцов и проталкивание предикатов)Умеренно

Распространенные сценарии повреждения и руководство по восстановлению в HEX

Столбцы смещаются вправо или количество строк не совпадает.

Первопричина: Текстовое поле, содержащее незаэкранированную запятую без окружающих кавычек.

Восстановление: RFC 4180 требует, чтобы поля, содержащие запятые, были заключены в двойные кавычки: "Smith, John".

Символы с диакритическими знаками в Excel отображаются как кракозябры (например, é вместо é).

Первопричина: Excel открыл файл CSV в кодировке UTF-8, предполагая использование устаревшей кодировки символов Windows ANSI/CP1252.

Восстановление: Добавьте 3-байтовый маркер последовательности байтов UTF-8 (0xEF 0xBB 0xBF) в начало файла.

Анализ безопасности и векторы атак на парсер

Файлы CSV напрямую открываются в программах для электронных таблиц, таких как Excel и Google Таблицы, что подвергает пользователей атакам с внедрением формул (CSV Injection).

Известные векторы атак

  • Внедрение формул: ячейки, начинающиеся с «=», «+», «-» или «@», могут выполнять макросы электронных таблиц или команды DDE (например, «=cmd|» /C calc'!A0').
  • Утечка данных через формулы HYPERLINK(), которые при нажатии отправляют конфиденциальные данные ячеек на удаленные серверы злоумышленников.

Лучшие практики защиты: При экспорте пользовательских данных в CSV добавляйте одинарную кавычку (') или табуляцию в начало любой ячейки, начинающейся с «=», «+», «-» или «@», чтобы Excel отображал ее как обычный текст.

История происхождения и ключевые этапы

2015Модель W3C для табличных данных и метаданных в Интернете стандартизирует CSV в вебе (CSVW) с дескрипторами метаданных JSON-LD.
2005IETF публикует RFC 4180, устанавливающий официальную спецификацию для файлов CSV.
1972Компилятор IBM Fortran (H Extended) реализует ввод/вывод с разделителями-запятыми.

Ключевые преимущества и плюсы

  • Максимальная простота: данные можно прочитать в любом текстовом редакторе и импортировать в любую базу данных или электронную таблицу.
  • Чрезвычайно быстрая построчная потоковая передача без создания полной DOM-модели в памяти.
  • Минимальные накладные расходы: отсутствие громоздкого синтаксиса тегов или определений схем.

Технические ограничения и минусы

  • Отсутствие стандартных типов данных: числа, даты, логические значения и текст хранятся в виде сырых строк.
  • Отсутствие поддержки нескольких листов, форматирования ячеек, формул или метаданных.
  • Конфликты разделителей (запятые в тексте, десятичные запятые в региональных настройках ряда европейских стран) часто приводят к ошибкам разбора.

Интересные технические факты

  • Во многих европейских странах, где запятые используются в качестве десятичных разделителей, в качестве разделителей CSV вместо запятых используются точки с запятой (;).
  • Исторически Microsoft Excel требовал наличия BOM UTF-8 (0xEF 0xBB 0xBF) для правильного отображения символов с диакритическими знаками, отличных от ASCII.
  • Национальная служба здравоохранения Великобритании в 2020 году потеряла почти 16 000 записей отслеживания контактов с COVID-19 из-за того, что данные были импортированы в устаревший формат таблицы Excel с ограничением в 65 536 строк.

Часто задаваемые технические вопросы

Что такое RFC 4180?

RFC 4180: это официальный стандарт IETF для CSV. Он требует, чтобы поля, содержащие запятые, переносы строк или двойные кавычки, были заключены в двойные кавычки, а внутренние кавычки экранировались путем их удвоения ("").

Почему файлы CSV открываются с поврежденными символами в Excel?

Более старые версии Microsoft Excel по умолчанию используют локальную кодовую страницу Windows (например, Windows-1252) вместо UTF-8 при непосредственном открытии файлов CSV. Добавление BOM UTF-8 (маркера последовательности байтов) в начале файла заставляет Excel правильно декодировать UTF-8.

Что такое инъекция CSV (внедрение формул)?

Внедрение формул в CSV происходит, когда в файл электронной таблицы экспортируются недоверенные пользовательские данные, начинающиеся с одного из символов «=», «+», «-» или «@», которые могут запускать формулу. При открытии файла в Excel или аналогичной программе таблица автоматически выполняет формулу или команду динамического обмена данными (DDE), что может привести к запуску системных команд или утечке данных.

Связанные конвертации для CSV

XLSX в CSV

Конвертация таблицы Excel в формат CSV извлекает необработанные табличные данные в универсальный текстовый формат для максимальной совместимости с программным обеспечением.

CSV в XLSX

Преобразование простых текстовых файлов CSV в многофункциональные таблицы XLSX позволяет использовать расширенное форматирование данных, формулы и несколько листов.

CSV в SQLITE

Преобразование плоских текстовых файлов в структурированные реляционные базы данных позволяет выполнять быстрые запросы и управлять сложными связями данных.

SQL в CSV

Преобразование скриптов резервного копирования реляционных баз данных в плоские табличные электронные таблицы упрощает анализ данных и подготовку отчетов.

HDF5 в CSV

Преобразование иерархических наборов данных HDF5 в плоские телеметрические файлы CSV превращает сложные многомерные научные записи в простые строки и столбцы для анализа в электронных таблицах.

NETCDF в CSV

Конвертация многомерных научных сеток NetCDF в плоские телеметрические файлы CSV делает сложные климатические и океанографические данные доступными для чтения в базовых программах для работы с электронными таблицами.

VCF в CSV

Преобразование файлов vCard в формат CSV превращает иерархические карточки контактов в плоские строки электронных таблиц для простого импорта в базы данных.