Таблиця CSV (.csv)
RFC СтандартComma-Separated Values (CSV): це поширений текстовий формат для табличних даних, у якому кожен рядок містить запис даних, а поля розділені символами-роздільниками.
Конвертувати з XLSX у CSV
Безкоштовний конвертер з XLSX у CSV у браузері. Миттєво конвертуйте файли на своєму пристрої.
Стиснути CSV онлайн
Приватно - файли ніколи не залишають ваш пристрій
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли CSV, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (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) | Parquet | JSON |
|---|---|---|---|---|
| Тип файлу | Плоска текстова таблиця. | Зархівована електронна таблиця 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.
Історичне походження та віхи
Основні переваги
- Максимальна простота: файл можна прочитати в будь-якому текстовому редакторі й імпортувати в будь-яку базу даних або електронну таблицю.
- Надзвичайно швидка обробка потоком, рядок за рядком, без створення повного 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
Конвертація таблиці Excel у формат CSV витягує необроблені табличні дані в універсальний текстовий формат для максимальної сумісності з різним програмним забезпеченням.
Конвертація простих текстових файлів CSV у багатофункціональні електронні таблиці XLSX дозволяє застосовувати розширене форматування даних, формули та кілька аркушів.
Перетворення простих текстових файлів на структуровані реляційні бази даних дозволяє виконувати швидкі запити та керувати складними зв'язками даних.
Перетворюйте скрипти резервного копіювання реляційних баз даних на плоскі табличні електронні таблиці для простого аналізу даних та звітності.
Перетворення ієрархічних наборів даних HDF5 на плоскі телеметричні файли CSV дає змогу перетворити складні багатовимірні наукові записи на прості рядки та стовпці для аналізу в електронних таблицях.
Перетворення багатовимірних наукових сіток NetCDF на плоскі телеметричні файли CSV робить складні дані про клімат та океан доступними для читання в базовому програмному забезпеченні електронних таблиць.
Конвертація файлів vCard у CSV-формат контактів перетворює ієрархічні картки контактів на пласкі рядки електронних таблиць для легкого імпорту в бази даних.