Перейти к инструменту
ViewCSV
Без загрузки на сервер

Как сохранить длинные числа и нули в начале при открытии CSV в Excel

Здесь два разных явления. Длинное число в виде 4.02177E+19 может быть всего лишь форматом отображения: стоит расширить столбец или выбрать формат «Числовой». Но при открытии CSV Excel меняет и само значение: числовая ячейка хранит только 15 значащих цифр, а нули в начале вообще не считаются частью числа. Цифры, которые уже заменены, форматированием не вернуть. Чтобы значения уцелели, они должны стать текстовыми ячейками до того, как Excel их преобразует: импортируйте такие столбцы как текст или откройте XLSX, где ячейки уже текстовые, — например, файл, который по умолчанию создаёт CSV в Excel.

Что Excel делает с файлом кодов и номеров

CSV — это обычный текст без типов ячеек. При двойном щелчке Excel для каждого значения сам решает, число это, дата или текст. В вымышленном файле ниже собраны значения, на которых эта догадка ошибается.

Что за значениеВ CSVExcel открыл CSVЯчейка в XLSX от ViewCSV
Нули в начале0041241200412
20-значный номер заказа402177300911524000164.02177E+1940217730091152400016
Следующий номер заказа402177300911524000174.02177E+1940217730091152400017
Телефон со знаком плюс+1555010023415550100234+15550100234
Артикул, похожий на дату3-1212-Mar3-12
Код партии с буквой E12E31.20E+0412E3
Примечание, похожее на формулу=SUM(F2:F3)17=SUM(F2:F3)
Типичный результат при открытии файла двойным щелчком в Excel с региональными настройками «Английский (США)». С русскими настройками отличается вид: например, вместо 1.20E+04 будет 1,20E+04, а 3-12 Excel прочитает как 3 декабря. В других версиях результат тоже может немного различаться.

Оба номера заказа показаны как 4.02177E+19, но это только отображение. На самом деле Excel сохранил лишь первые 15 цифр, и теперь в обеих ячейках одно и то же значение — 40217730091152400000. Если расширить столбец, появятся эти нули, а не исходные цифры, а ВПР или поиск дубликатов сочтёт два заказа одним.

Эти строки — пример из конвертера. Скачайте CSV, откройте его в своём Excel и сравните.

Открыть «CSV в Excel»Скачать пример CSV4 строки вымышленных данных, UTF-8

Экспоненциальная запись — это вид, а потеря цифр — реальна

4.02177E+19 — лишь то, как слишком узкий столбец с форматом «Общий» показывает большое число; в широком столбце или в формате «Числовой» видно больше. Настоящая потеря случается раньше: Excel хранит числа с точностью до 15 значащих цифр, поэтому при преобразовании каждая цифра начиная с 16-й становится нулём. Номер банковской карты из 16 цифр или 20-значный номер счёта теряют хвост уже на этом шаге.

  • Нули в начале пропадают, потому что 00412 и 412 — одно и то же число. Пользовательский формат 00000 снова покажет пять знаков, но в ячейке по-прежнему 412, а коды разной длины так не восстановить.
  • Длинные идентификаторы теряют все цифры после 15-й. Если файл сохранили после изменения, никакой формат, формула или программа их не вернёт.
  • Коды вроде 3-12 или 12E3 становятся датой или числом в экспоненциальной записи, и исходного текста в ячейке больше нет.
  • Значения, начинающиеся с =, считаются формулами и заменяются результатом вычисления.
Примечание Если сохранить лист обратно в CSV, изменённые значения попадут в файл. Если кто-то открывал и сохранял CSV в Excel, сравните его с исходной выгрузкой: когда цифры в CSV уже стали нулями, их не вернуть.

Создайте вместо этого XLSX с текстовыми ячейками

В отличие от CSV, книга .xlsx хранит тип каждой ячейки, и текстовую ячейку Excel показывает ровно так, как она записана. CSV в Excel по умолчанию записывает каждое значение как текст. Конвертер работает в браузере и не загружает файл на сервер.

  1. Откройте свой CSV в CSV в Excel или нажмите Открыть пример, чтобы загрузить строки из таблицы выше.
  2. Проверьте таблицу в разделе Исходные данные: коды, нули и номера выглядят точно так же, как в файле.
  3. Оставьте в поле Типы значений вариант Все значения как текст.
  4. Нажмите Скачать XLSX и откройте книгу в Excel.

В книге 00412, все 20 цифр обоих номеров заказа, +15550100234, 3-12, 12E3 и =SUM(F2:F3) — текстовые ячейки. Значение, похожее на формулу, хранится как обычный текст, поэтому при открытии ничего не вычисляется. Excel может пометить похожий на число текст зелёным треугольником («Число сохранено как текст»); само значение не меняется.

Примечание Текстовые ячейки не суммируются. Чтобы считать по quantity или unit_price, прочитайте следующий раздел, а не преобразуйте целые столбцы в Excel: по ошибке выделенный столбец с кодами тоже превратится в числа.

Если нужны ещё и настоящие числа

Распознавать числа и true/false делает столбец числовым, только если каждое значение в нём — простое число, которое Excel сохранит без изменений. В примере quantity и unit_price станут числами, а customer_id (нули в начале), order_ref (больше 15 цифр), part_code и note останутся текстом.

Распознавание оценивает форму значений, а не их смысл, и решает сразу для всего столбца. Столбец только из значений вида +15550100234 читается как целые числа со знаком, а столбец только из значений вида 12E3 — как экспоненциальная запись, поэтому в примере phone и lot_code тоже стали бы числами. Для таких файлов оставьте вариант по умолчанию и преобразуйте в Excel только ячейки с количеством: выделите их и выберите Преобразовать в число в меню значка предупреждения.

Если приходится начинать с CSV в самом Excel

Если готовая книга не подходит, не открывайте CSV двойным щелчком: импортируйте его и задайте рискованным столбцам тип «Текст» до загрузки данных. В актуальном Excel для Microsoft 365 это Данные > Из текстового/CSV-файла > Преобразовать данные: удалите автоматический шаг Измененный тип, задайте столбцам с кодами тип «Текст» и загрузите. Подробно этот способ и старый мастер импорта текста описаны в руководстве как импортировать CSV в Excel.

В свежих сборках Excel для Microsoft 365 и Excel 2024 в параметрах данных есть ещё и настройки автоматического преобразования данных: они могут запретить удалять нули в начале, округлять длинные числа, применять экспоненциальную запись и превращать похожий на дату текст в даты. Наличие и названия этих настроек зависят от версии и платформы, и действуют они только в вашем Excel, а не у коллег.

Что не защищает значения

  • Кавычки вокруг значения ("00412") лишь показывают программе чтения CSV, где значение начинается и заканчивается. Число в кавычках Excel преобразует точно так же.
  • Метка порядка байтов UTF-8 (BOM) помогает Excel правильно прочитать кириллицу и другие алфавиты вместо «кракозябр». О типах ячеек она ничего не сообщает.
  • Формат «Текст» для столбца после открытия применяется слишком поздно: преобразование уже произошло.
  • Обёртки-формулы вроде ="00412" работают только там, где таблица вычисляет формулы. Другие программы чтения CSV, базы данных и скрипты видят буквальный текст ="00412", так что данные в файле уже не являются кодом.
  • Апостроф в начале ('00412) — не формула: при вводе в Excel он помечает значение как текст и не отображается. Но в CSV-файле это обычный символ, и другие программы получат значение '00412.
  • Настоящая текстовая ячейка в XLSX хранит чистое значение 00412 без лишних символов. Именно её записывает конвертер, поэтому ViewCSV не добавляет ни обёрток, ни апострофов.

Ограничения

Конвертер обрабатывает файлы размером до 25 МБ, до 100 000 строк, 250 столбцов и 2 миллионов ячеек, по одному листу на книгу. Файл, который уже сохранён с округлёнными кодами или без нулей в начале, конвертация не исправит — выгрузите его заново из исходной системы. Тесты ViewCSV проверяют типы ячеек в созданном XLSX независимой программой чтения; как конкретная версия Excel покажет их на экране, может различаться.

Источники

Документация Microsoft, пересказанная своими словами. В вашей версии Excel названия пунктов меню могут отличаться.

Другие руководства

Руководства по CSV и Excel