CSV файл с контакти (.csv)
RFC СтандартComma-Separated Values (CSV) е широко разпространен формат на обикновен текст за таблични данни, при който всеки ред представлява запис, а полетата са разделени със знаци разделители.
Конвертиране от XLSX към CSV
Безплатен конвертор от XLSX към CSV в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Компресирайте CSV онлайн
Поверително - файловете никога не напускат устройството ви
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират CSV файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират CSV файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
Няма фиксиран подписASCII ПРЕДСТАВЯНЕ: Текстови байтове; кодирането варира (често UTF-8).
Стандартизация: RFC 4180 / IETF
Технически спецификации
| Контейнерна архитектура | Обикновен текстов файл с разделители на таблични редове и колони с данни |
| Компресия | Gzip и Deflate могат да компресират повтарящ се текст; крайният размер зависи от данните и настройките. |
| Поредност на байтовете (Endianness) | UTF-8 текстов поток (опционален UTF-8 BOM EF BB BF, използван от Excel) |
| Цветови пространства | Неприложимо |
| Канали и структура | Записи на редове, разделени с CRLF, с колони, разделени със запетаи |
| Максимални размери | Неограничено; възможност за потокова обработка до гигабайти без зареждане на целия файл в паметта |
| Прозрачност | Неприложимо |
| Поточно предаване и прогресивно зареждане | Вградена обработка на потоци ред по ред, поддържана от всички тръбопроводи за данни |
Техническа сравнителна матрица: CSV спрямо конкуренти
| Технически атрибут | CSV (Текущ) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Тип файл | Обикновена текстова плоска таблица | Архивирана XML електронна таблица | Двоично колоноподобно съхранение | Йерархичен текст |
| Множество листове | Не (само една плоска таблица) | Да (множество работни книги и листове) | Съхранение на базата на дялове | Вложени масиви и обекти |
| Типове данни | Нетипизиран суров текст | Типизирани клетки, формули, форматиране | Строги двоични типове колони | Примитивни типове (низ, число, булево) |
| Анализ на големи данни | Бавно (изисква линейно четене на всеки ред) | Неподходящо за големи данни | Свръхбързо (изрязване на колони и избутване на предикати) | Умерено |
Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни
Колоните се изместват надясно или броят на редовете не съвпада.
Първопричина: Текстово поле, съдържащо неескейпната запетая без околни кавички.
Възстановяване: RFC 4180 изисква полетата, съдържащи запетаи, да бъдат обвити в двойни кавички: "Smith, John".
Знаците с ударения се визуализират като странни символи (неправилно декодиране на знаци като é вместо é) в Excel.
Първопричина: Excel отвори UTF-8 CSV, приемайки го за наследеното кодиране на знаци Windows ANSI/CP1252.
Възстановяване: Добавете 3-байтовия UTF-8 маркер за последователност на байтовете (0xEF 0xBB 0xBF) в началото на файла.
Анализ на сигурността и вектори на атака към парсера
CSV файловете се отварят директно в софтуер за електронни таблици като Excel и Google Sheets, излагайки потребителите на атаки с инжектиране на формули (CSV инжектиране).
Известни вектори на атака
- Инжектиране на формули: Клетки, започващи с '=', '+', '-' или '@', могат да изпълняват макроси на електронни таблици или DDE команди (напр. '=cmd|' /C calc'!A0').
- Екфилтрация на данни чрез формули HYPERLINK(), изпращащи чувствителни данни от клетки към отдалечени сървъри на атакуващия при щракване.
Най-добри практики за защита: Когато експортирате потребителски данни в CSV, поставете единична кавичка (') или табулация в началото на всяка клетка, започваща с '=', '+', '-' или '@', за да се визуализира съдържанието като обикновен текст в Excel.
Исторически произход и етапи
Основни предимства
- Максимална опростеност: четим във всеки текстов редактор и импортируем във всяка база данни и електронна таблица.
- Изключително бърз потокова обработка ред по ред без изграждане на пълен DOM в паметта.
- Минимален допълнителен обем: липса на многословни етикети или дефиниции на схеми.
Технически ограничения и минуси
- Липса на стандартни типове данни: числата, датите, булевите стойности и текстът се съхраняват като сурови низове.
- Липса на поддръжка за множество листове, форматиране на клетки, формули или метаданни.
- Конфликтите с разделители (запетаи вътре в текста, десетични запетаи в европейските локали) предизвикват чести грешки при парсиране.
Интересни технически факти
- В много европейски държави, където запетаите се използват като десетични точки, вместо запетаи като CSV разделители се използват точки и запетаи (;).
- Microsoft Excel исторически изискваше UTF-8 BOM (0xEF 0xBB 0xBF) за правилно показване на знаци с ударения, които не са ASCII.
- Националната здравна служба на Обединеното кралство загуби известни близо 16 000 записа за проследяване на контакти с COVID-19 през 2020 г., тъй като данните бяха импортирани в остарял формат на електронна таблица на Excel, който ограничаваше лимита на редовете до 65 536.
Често задавани технически въпроси
Какво представлява RFC 4180?
RFC 4180 е официалният стандарт на IETF за CSV. Той изисква полетата, съдържащи запетаи, нови редове или двойни кавички, да бъдат затворени в двойни кавички, а вътрешните кавички да се ескейпват чрез тяхното удвояване ("").
Защо CSV файловете се отварят с повредени знаци в Excel?
По-старите версии на Microsoft Excel използват по подразбиране локалната кодова таблица на Windows (като Windows-1252), а не UTF-8, когато отварят директно CSV файлове. Добавянето на UTF-8 BOM (Byte Order Mark) в началото на файла кара Excel да декодира правилно данните в UTF-8.
Какво представлява CSV инжектирането (инжектиране на формули)?
CSV инжектирането възниква, когато ненадеждни потребителски входни данни, съдържащи водещи символи, задействащи формули ('=', '+', '-', '@'), бъдат експортирани във файл с електронна таблица. Когато се отвори в софтуер като Excel, електронната таблица автоматично изпълнява формулата или командата за динамичен обмен на данни (DDE), потенциално стартирайки системни команди или извършвайки екфилтрация на данни.
Свързани двойки за конвертиране на CSV
Конвертирането на Excel таблица в CSV файл извлича суровите таблични данни в универсален текстов формат за максимална софтуерна съвместимост.
Конвертирането на прости текстови CSV файлове в богати на функции XLSX електронни таблици позволява усъвършенствано форматиране на данни, формули и множество листове.
Конвертирането на плоски текстови файлове в структурирани релационни бази данни ви позволява да изпълнявате бързи заявки и да управлявате сложни връзки между данните.
Преобразувайте скриптове за архивиране на релационни бази данни в таблични електронни таблици за опростен анализ на данни и отчетност.
Конвертирането на йерархични HDF5 набори от данни в плоски телеметрични CSV файлове трансформира сложни многомерни научни записи в опростени редове и колони за анализ в електронни таблици.
Конвертирането на многомерни NetCDF научни мрежи в плоски телеметрични CSV файлове прави сложните климатични и океански данни четими в основен софтуер за електронни таблици.
Конвертирането на vCard файлове в CSV формат за контакти превръща йерархичните карти с контакти в плоски редове на електронна таблица за лесно импортиране в бази данни.