Таблиця CSV (.csv)

RFC Стандарт

Comma-Separated Values (CSV): це поширений текстовий формат для табличних даних, у якому кожен рядок містить запис даних, а поля розділені символами-роздільниками.

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

Безкоштовний конвертер з XLSX у CSV у браузері. Миттєво конвертуйте файли на своєму пристрої.

Стиснути CSV онлайн

Приватно - файли ніколи не залишають ваш пристрій

Аналіз та метадані

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

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

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

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

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 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Бінарне стовпчикове сховищеІєрархічний текст
Підтримка кількох аркушівНі (лише одна плоска таблиця)Так (кілька робочих книг і аркушів)Зберігання на основі розділівВкладені масиви та об'єкти
Типи данихНетипізований необроблений текстТипізовані клітинки, формули, форматуванняСуворі бінарні типи стовпцівПримітивні типи (рядок, число, логічне значення)
Аналітика великих данихПовільно (потребує лінійного читання кожного рядка)Не підходить для великих данихДуже швидко (відсікання стовпців і проштовхування предикатів)Помірно

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Стовпці зміщуються вправо або кількість рядків не збігається.

Першопричина: Текстове поле містить неекрановану кому без лапок навколо неї.

Відновлення: RFC 4180 вимагає брати поля, що містять коми, у подвійні лапки: "Smith, John".

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

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

Відновлення: Додайте трибайтову мітку порядку байтів 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-формат контактів перетворює ієрархічні картки контактів на пласкі рядки електронних таблиць для легкого імпорту в бази даних.