Перейти к содержимому

Открыть CSV-файл

Посмотрите, что на самом деле в файле. Ведущие нули остаются, даты не выдумываются, а разделитель и кодировка определяются за вас. Ничего не сохраняется.

  • Не сохраняется
  • Без очереди и ожидания
  • Без регистрации и водяных знаков

Как это работает

1

Перетащите файл

CSV, TSV или любой файл с разделителями — точками с запятой или вертикальными чертами: разделитель определяется автоматически.

2

Читайте его как таблицу

С сортировкой, поиском, номерами строк и столбцов. Каждое значение показано ровно так, как хранится.

3

Найдите нужное

Фильтруйте строки, переходите к столбцу и смотрите, какие ячейки пустые или строки неровные.

Как прочитать CSV, не отдавая его Excel

Смотреть CSV здесь, а не в Excel, стоит потому, что Excel меняет файл прямо при открытии. Ведущий ноль в почтовом индексе или номере счёта удаляется, потому что столбец похож на числовой. Идентификатор длиннее пятнадцати цифр округляется. Всё, что напоминает дату, переформатируется по местным правилам, так что 03/05 означает разное в зависимости от страны. А название гена вроде SEPT1 становится датой — проблема настолько живучая, что генетики переименовали гены. Здесь ничего подобного не происходит: значения показываются ровно такими, какими их задают байты файла.

У CSV нет настоящего стандарта, поэтому сначала нужно понять, что это за файл. Разделителем может быть запятая, точка с запятой или табуляция — в европейских локалях выгружают с точкой с запятой, потому что запятая там служит десятичным разделителем, — а кодировкой может быть UTF-8 или устаревшая кодовая страница: при неверной догадке имена с диакритикой превращаются в кракозябры. И то и другое определяется, а не предполагается, что подходит почти для любой реальной выгрузки, а если определение ошиблось, их можно задать вручную, а не остаться ни с чем.

Кавычки — то место, где наивные просмотрщики ломаются. Поле в кавычках по правилам может содержать запятые, переносы строк и удвоенные кавычки, поэтому строка с почтовым адресом занимает в файле несколько физических строк, оставаясь одной записью. Всё, что просто делит текст по запятым, портит именно такие строки — вот почему файл выглядит нормально в текстовом редакторе и неправильно в просмотрщике или наоборот.

Неровный файл — со строками, где полей больше или меньше, чем в заголовке, — показывается как есть, без тихого дополнения или обрезки: строка с неправильным числом полей обычно симптом проблемы с кавычками где-то выше, и, скрыв её, вы скроете и ошибку. Весь файл разбирается на странице, поэтому расход памяти пропорционален его размеру.

Если нужно другое

В командной строке для этого создан csvkit: csvlook выводит выровненную таблицу, csvstat даёт сводку по каждому столбцу, а csvclean находит и исправляет неровные строки. Miller — mlr --icsv --opprint cat data.csv — делает то же самое быстро и справляется с файлами больше объёма памяти. Для интерактивного изучения стоит знать VisiData: он мгновенно открывает многогигабайтный файл в терминале, с сортировкой, фильтрацией и подсчётом частот.

Если открывать CSV в Excel всё же нужно, используйте Данные → Из текстового/CSV-файла (Data → From Text/CSV), а не двойной щелчок. Окно импорта позволяет задать тип каждого столбца до разбора — это единственный надёжный способ избежать описанных выше преобразований. Двойной щелчок даёт Excel право угадывать, и угадывает он очень уверенно.

Частые вопросы

Мой файл где-нибудь сохраняется?

Нет. Ничего не сохраняется и не хранится, а после загрузки страницы всё работает даже с выключенным Wi-Fi. CSV — это обычно список клиентов, выгрузка или финансовый отчёт, то есть именно тот файл, который не стоит отдавать чужому серверу.

Почему Excel портит мой CSV?

Потому что Excel преобразует данные при открытии, ничего не спрашивая. Код товара 00123 становится числом 123, и нули пропадают навсегда. Артикул вроде 5-3 становится 5 марта. Длинный номер заказа превращается в 1.23457E+14. Немецкий CSV с разделителем «точка с запятой» целиком оказывается в столбце A. Ничего этого в вашем файле нет — это Excel сделал с ним при открытии. Этот просмотрщик показывает каждое значение как текст, ровно так, как оно хранится, поэтому вы видите, что на самом деле получили.

Какие разделители и кодировки поддерживаются?

Запятые, точки с запятой, табуляции и вертикальные черты — разделитель определяется по содержимому файла, а не по расширению: «CSV» из немецкой системы обычно разделён точками с запятой. Кодировка тоже определяется: UTF-8 с меткой порядка байтов или без неё, UTF-16 и файлы Windows-1252/Latin-1, которые создают старые системы. При неверной кодировке вместо "é" вы увидите "é", и на странице её можно сменить.

Обрабатываются ли поля в кавычках с запятыми внутри?

Да — правильно, по RFC 4180. Поле в кавычках может содержать запятые, переносы строк и экранированные кавычки, и все три случая обрабатываются. Деление по запятым без учёта кавычек — классическая ошибка CSV: она незаметно сдвигает все столбцы после проблемного поля.

Файл какого размера можно открыть?

Ограничение — доступная память, а не фиксированный размер: файлы во много мегабайт и сотни тысяч строк открываются без проблем. Отрисовываются только строки на экране, поэтому даже большой файл прокручивается плавно.

Можно ли его отредактировать или конвертировать?

Эта страница — для чтения. Для конвертации есть наши инструменты [CSV в Excel](csv-to-excel) и [CSV в JSON](csv-to-json): они именно это и делают и сохраняют ведущие нули как текст, не давая таблице их съесть.

Полезно знать: Весь файл разбирается на странице, поэтому очень большая выгрузка займёт память пропорционально своему размеру. Разделитель, кавычки и кодировка определяются, а не предполагаются, что подходит почти для любой реальной выгрузки, — а если определение ошиблось, их можно задать вручную.

Разместите этот инструмент на своём сайте

Бесплатно для любого блога, страницы класса или справочной статьи. Вставьте один фрагмент кода — и посетители смогут пользоваться инструментом прямо на вашей странице.