11

У меня есть веб-приложение, которое экспортирует свои данные в файл CSV. Вот один пример строки рассматриваемого файла CSV:

28,"65154",02/21/2013 00:00,"false","0316295","8316012,8315844","MALE"

Поскольку я не могу опубликовать изображение, мне придется объяснить результаты в Excel. Поле "0316295" превращается в число, а начальный 0 исчезает. «8316012,8315844» интерпретируется как одно единственное число: 83,160,128,315,844. Это, очевидно, не предполагаемый результат.

Я видел, как люди рекомендуют использовать лидирующие одинарные кавычки для таких случаев, но это тоже не работает.

28,"65154",02/21/2013 00:00,"false","'0316295","'8316012,8315844","MALE"

Одиночная кавычка всегда видна в ячейке в Excel, хотя, если я сам введу число с первой одинарной кавычкой, она показывает только предполагаемую строку, а не одинарную кавычку со строкой.

Кажется, импорт - это не то же самое, что печатать.

У кого-нибудь есть решение здесь?

6 ответов6

12

Чтобы сохранить ведущие нули, вы можете установить формат этого конкретного столбца в текст в мастере импорта текста.

  1. Запустите мастер импорта текста , перейдя на вкладку « Данные » и нажав « Из текста».
  2. Выберите файл CSV, который вы хотите импортировать.
  3. Выберите разделитель и нажмите Далее.
  4. Снимите флажок Tab (по умолчанию). Выберите Запятая. Убедитесь, что Text Qualifier установлен на " . Хит Next.
  5. Здесь вы можете указать форматы . Нажмите на заголовок столбца, начальный ноль которого вы хотите сохранить. Выберите текст. (См. Изображение ниже)

  6. Нажмите Finish и затем выберите подходящее место для ваших данных. Пример результата:

Изменить: есть другой способ ; сделать экспорт веб-приложения через запятую.TXT файл вместо.CSV (или просто измените расширение файла экспортируемого файла после его сохранения). Это заставляет Excel пройти через мастер импорта, когда они открывают файл. Как дополнительное преимущество, это уменьшает шансы того, что пользователи изменят или вмешаются в ваши исходные необработанные данные.

9

Это должно работать

28,"65154",02/21/2013 00:00,"false",="0316295","=""8316012,8315844""","MALE"
3

Excel обрабатывает числовые значения, начинающиеся с символа табуляции, как текст.

<tabchar>000000100000200000,ABC,DEF

Будет выглядеть как:

000000100000200000|ABC|DEF

| является границей ячейки (для иллюстрации). Так, например, если ваша система генерирует файл CSV с использованием кодировки utf-8, вы можете добавить &#x0009; (Tab Char in Hex) перед вашим числовым значением, чтобы заставить excel интерпретировать его как текст.

1

Excel автоматически определит формат поля CSV, если столбец CSV не находится в этом формате:

"=""Data Here"""

Это также работает для листов Google

0

Вам нужно использовать функцию «Данные -> Получить внешние данные -> Импортировать текст из файла» в Excel, чтобы отобразить ее в виде текста. Это упомянутый мастер импорта текста @Kaze.

Единственный способ заставить Excel отображать числа в виде текста из ввода без необходимости что-либо делать, - вывести файл Excel и указать в нем "пользовательский формат чисел". Для этого я рекомендую использовать библиотеку экспорта XLS, так как это не так просто, как добавить строку текста конфигурации в файл CSV.

0

попробуйте очистить функцию для значений, которые запутались. Например, = clean("12345678901234567890"). Это работает для меня числа, даты, время и т.д. Я хотел бы предупредить, что, поскольку эта функция вовсе не предназначена для этой функции, она может перестать работать с новыми версиями и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .