Данные и таблицы · CSV Очиститель
Почему Excel незаметно повреждает поля CSV: ведущие нули, даты и длинные идентификаторы
· Почему это важно
csv очистка данных электронные таблицы
Открытие CSV в электронной таблице не является нейтральным: почтовые индексы теряют нули, коды становятся датами, а длинные идентификаторы превращаются в научные обозначения. В этом посте объясняется, почему это происходит, что невозможно восстановить и как сохранить нетронутый необработанный файл.
Файл, который был в порядке, пока его кто-то не открыл — почтовый индекс 01234 становится 1234, а повреждения сохраняются обратно.
Файл покидает исходную систему с почтовым индексом 01234, открывается в электронной таблице и возвращается аналитику с 1234. Исходный CSV не был искажен: он содержал текст с начальным нулем. Разница возникла, когда программа догадалась, что столбец числовой, а затем сохранила его интерпретированное значение. Как только кто-то перезапишет исходный файл, последующий инструмент очистки не сможет определить, означало ли 1234 01234 или 001234. Сохраняйте экспортированный файл нетронутым, прежде чем проверять его в любой электронной таблице.
Угадывание текста при открытии — как электронные таблицы выводят числа, даты и формулы из текста и почему CSV не дает им возможности сказать обратное
CSV обозначает строки, разделители и текст в кавычках; он не объявляет типы номера, даты или почтового индекса для каждого столбца. Электронная таблица, открывающая ее напрямую, должна делать предположения. Значение, начинающееся с цифр, может стать числом, 03-04 можно интерпретировать как дату в соответствии с языковым стандартом, а значение, начинающееся с =, в некоторых приложениях можно интерпретировать как формулу. Заключение в кавычки «01234» защищает разделитель CSV, а не его будущую классификацию как текст мастером автоматического импорта.
Классические потери — ведущие нули, длинные числовые идентификаторы, все, что напоминает дату, и значения, начинающиеся со знака равенства.
Ведущие нули в почтовых индексах и SKU, идентификаторы с более значащими цифрами, чем может сохранить формат чисел в электронной таблице, а также неоднозначные строки даты — это классические жертвы. Научная запись сама по себе не является искажением — это выбор отображения, но сохранение длинного идентификатора после числового преобразования может привести к потере точных цифр. Значения, выглядящие как формулы из ненадежных данных, представляют собой отдельный риск безопасности. В экспорте CSV ToolAcre есть опция, безопасная для внедрения формул, которая ставит префиксы к рискованным запускам, с компромиссом, что намеренно рассчитанные ячейки больше не будут рассчитываться.
Почему ущерб часто является необратимым: точность теряется при сохранении, а даты, повторно сериализованные в другом формате, не могут быть отменены из выходных данных.
Предположим, что номер клиента из 20 цифр округлен после числовой интерпретации и сохранен. Недостающие исходные цифры невозможно угадать из нового CSV. Дата, преобразованная во внутреннюю дату и экспортированная в другой языковой стандарт, могла потерять значение источника 3 апреля или марта 4. Вот почему фраза «Я почищу это позже» — небезопасный первый шаг. Сохраняйте необработанные байты до того, как какое-либо программное обеспечение с автоматическим набором сможет их заменить.
Вместо этого работайте с необработанным текстом — сохраняйте копию, к которой не прикасалась никакая электронная таблица, и очищайте ее как текст перед импортом.
Работайте над копией экспорта текста с помощью синтаксического анализатора, который рассматривает ячейки как строки. Очиститель CSV из ToolAcre анализирует разделители и поля в кавычках в браузере и отображает предупреждения о строках, не удаляя при этом лишние ячейки. Проверьте, содержит ли заголовок исходные ведущие байты и содержат ли идентификаторы точные исходные символы. Очистка пробелов или дубликатов не связана с интерпретацией значения поля; почтовый индекс должен оставаться строкой, даже если каждый символ является цифрой.
Рабочий пример — экспорт продукта с артикулами и почтовыми индексами, показывающий, что меняется в электронной таблице и что сохраняет очистка на уровне текста.
Используйте иллюстративный экспорт с артикулом заголовка;почтовым индексом;описанием и строками 00042;01234;"Красный, маленький" и 00043;00105;"Синий, большой". Простой импорт запятой сворачивает поля с точкой с запятой, а автоматический ввод чисел может превратить 00042 и 01234 в 42 и 1234. CSV Анализ точки с запятой в Cleaner дает три текстовых столбца, включая запятую в кавычках внутри каждого описания; экспорт очищенной копии по-прежнему требует импорта столбцов в виде текста в целевую электронную таблицу. Сравните необработанные и полученные файлы, прежде чем отправлять их на закупку.
Что сюда не входит — восстановление значений, уже уничтоженных при предыдущем сохранении, или настройка мастера импорта электронной таблицы.
Этот пост не может восстановить цифры идентификатора или ведущие нули, уже уничтоженные в сохраненном файле электронной таблицы. Очиститель на уровне текста также не настраивает мастер импорта Excel, настройки языкового стандарта коллеги или схему базы данных. Как только необработанный файл окажется в безопасности, следуйте инструкциям поставщика электронных таблиц по импорту текста для столбцов кода и идентификатора. Протестируйте небольшую выборку с помощью точного рабочего процесса получателя; «открывается в столбцы» не означает «сохраняется каждая строка».
Исправьте файл до того, как его увидит электронная таблица: как средство очистки ToolAcre CSV позволяет исправлять разделители, кодировки и кавычки еще до того, как экспорт будет открыт в электронной таблице.
Исправьте файл до того, как его увидит электронная таблица, а затем выберите режим импорта, в котором идентификаторы сохраняются в текстовом виде. CSV Очиститель может локально исправить разделитель, кодировку и кавычки немодифицированного экспорта. Это не мешает электронной таблице перестать угадывать типы полей от вашего имени, поэтому нетронутый оригинал и сравнение после импорта остаются наиболее важными гарантиями.