CSV файл с контакти (.csv)

RFC Стандарт

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

Конвертиране от XLSX към CSV

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

Компресирайте CSV онлайн

Поверително - файловете никога не напускат устройството ви

Проверка и метаданни

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

Изберете или пуснете файлове тук

Поверително - файловете никога не напускат устройството ви

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на заглавката (сигнатурни байтове)

Операционните системи и файловите анализатори идентифицират 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)ParquetJSON
Тип файлОбикновена текстова плоска таблицаАрхивирана 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.

Исторически произход и етапи

2015W3C Model for Tabular Data and Metadata on the Web стандартизира CSV on the Web (CSVW) с дескриптори на метаданни за JSON-LD.
2005IETF публикува RFC 4180, установявайки официалната спецификация за CSV файлове.
1972Компилаторът IBM Fortran (H Extended) реализира вход/изход, разделен със запетаи.

Основни предимства

  • Максимална опростеност: четим във всеки текстов редактор и импортируем във всяка база данни и електронна таблица.
  • Изключително бърз потокова обработка ред по ред без изграждане на пълен 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

XLSX до CSV

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

CSV до XLSX

Конвертирането на прости текстови CSV файлове в богати на функции XLSX електронни таблици позволява усъвършенствано форматиране на данни, формули и множество листове.

CSV до SQLITE

Конвертирането на плоски текстови файлове в структурирани релационни бази данни ви позволява да изпълнявате бързи заявки и да управлявате сложни връзки между данните.

SQL до CSV

Преобразувайте скриптове за архивиране на релационни бази данни в таблични електронни таблици за опростен анализ на данни и отчетност.

HDF5 до CSV

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

NETCDF до CSV

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

VCF до CSV

Конвертирането на vCard файлове в CSV формат за контакти превръща йерархичните карти с контакти в плоски редове на електронна таблица за лесно импортиране в бази данни.