Чому Excel видаляє провідні нулі під час відображення даних CSV?


9

У мене є текстовий файл CSV із таким вмістом:

"Col1","Col2"
"01",A
"2",B
"10", C

Коли я відкриваю його за допомогою Excel, він відображається, як показано тут:

Зауважте, що Cell A2намагається відобразити "01" як число без провідного "0".

Коли я форматую рядки з 2 по 4 як "Текст", це змінює дисплей на

... але все ж провідний "0" пішов.

Чи є спосіб відкрити файл CSV в Excel і мати можливість бачити всі провідні нулі у файлі, прогорнувши якусь опцію? Мені не хочеться вводити '01 у кожній комірці, яка повинна мати нульовий нуль. Крім того, використання провідного апострофа вимагає, щоб зміни були збережені у форматі XLS, коли потрібен CSV. Моя мета - просто використовувати Excel для перегляду фактичного вмісту файлу як тексту, без Excel намагається зробити мені якісь прихильності форматування.


Єдиний спосіб, коли я це зрозумів, є важким, але, здається, працює. Скопіюйте та вставте на новий аркуш. Встановіть всю вставлену область у форматі "текст", потім видаліть її та вставте значення знову. Боб - твоя тітка.

3
(Для наших користувачів, які не входять до Великобританії, "Ваша тітка у Боба" - це ідіома, яка невірно перекладається на "і ви все готові".)
iglvzx

Роберт не був моєю тіткою. :-) Я думав, що раніше мав успіх у цьому, але це не вийшло. Спробуй це. Що мене збентежило, чому форматування комірки як тексту не призводить до того, що значення "02" не буде передано під назвою "0" зліва, виправдане.
Чад

1
якщо csv призначений лише для excel, ви можете використовувати явні числа як текст - наприклад, якщо ви пишете '01у excel, він відображатиметься 01без єдиної цитати ..
Квільйон

Відповіді:


6

Коли ви відкриєте csv, у вас буде можливість вказати роздільник і тип даних для кожного стовпця. Майстер імпорту тексту має 3 кроки. Зауважте, що мої знімки екрана - з Excel 2010, але це буде працювати точно так само в Excel 2003.

Крок 1: виберіть обмежений (замість фіксованої ширини)

Крок 2: виберіть косу як роздільник

Крок 3: виберіть кожен стовпчик і змініть формат даних на "текст". (Ви побачите слово "Текст", що відображається над кожним стовпцем, як на знімку екрана.)

введіть тут опис зображення

Провідні нулі більше не будуть видалятися:

введіть тут опис зображення

ОНОВЛЕННЯ : Якщо ви не хочете переходити через процес, щоб змусити Excel співпрацювати, ви можете використовувати CSVEd , редактор, призначений спеціально для редагування текстових файлів з обмеженими можливостями. Хороший текстовий редактор, як Notepad ++, також може працювати, але ви не зможете побачити свої дані, розташовані в стовпцях.



1
Моя проблема полягала в тому, що у моєму файлі було розширення csv, і діалогове вікно Імпорт ніколи не з'являється. коли я перейменував файл, щоб він мав текстове розширення, все було налаштовано і знав, куди йти. ти.
Чад

Ось ускладнення: після імпортування його, як ви описуєте, я хочу отримати можливість змінювати файл і зберігати його назад як CSV. Він пропонує мені перекручене потворне діалогове вікно (c'mon microsoft - розробити для цього спеціальну діалогову форму замість того, щоб використовувати функцію Windows MessageBox!). Я вибираю варіант "зберегти його в тому самому форматі". Коли я це роблю, він за замовчуванням встановлює формат, розділений на вкладку. Щоб зберегти збереження файлу txt за допомогою розділювача комів, вам потрібно змінити розширення імені файлу назад на "csv." Це потворно з чого? Після 10 версій Excel у нас це є?
Чад

Привіт Велике, дивіться оновлення внизу моєї відповіді. Можливо, вам буде краще взагалі не використовувати Excel.
Джон Кроуелл

Так, я вже шукав редактора CSV. Я побачив CSVEd. Моє первинне враження, що це схоже на заплутаний інтерфейс. Я думаю, що "Табличний редактор тексту" виглядає краще. Спасибі за вашу допомогу.
Чад

13

Щойно наткнувся на це питання. Якщо ви керуєте створенням файлу CSV, ви можете зробити такі дані такими:

"Col1","Col2"
="01",A
="2",B
="10", C

Якщо відкрити як Excel, він збереже 01.


My Excel 2010 не зберігає 01 навіть у вашому прикладі
OneWorld

1

відформатуйте стовпчик, щоб він відображав, як ви хочете (наприклад, 00 для двох цифр).
Це має перевагу, воно буде збережено цими цифрами (але вам доведеться змінювати форматування кожного разу, коли ви редагуєте CSV)


0

Спершу скопіюйте всі дані / стовпці та рядки з фактичного аркуша excel на інший аркуш excel, щоб бути надійним, щоб мати фактичні дані для порівняння. Кроки,

  1. Скопіюйте всі значення у стовпчик та вставте їх у блокнот.
  2. Тепер змініть тип стовпця на текст на аркуші Excel (він обріже попередні / слідові нулі), не хвилюйтеся з цього приводу.
  3. Перейдіть у Блокнот і скопіюйте всі значення, які ви зараз вставили.
  4. Перейдіть на свій аркуш excel та вставте значення в той самий стовпець.

Якщо у вас є більше одного стовпця з 0 значеннями, просто повторіть те саме.

Щасливі дні.


0

1) Вставте мої номери в стовпець excel (це видалить провідні нулі)

2) Потім клацніть правою кнопкою миші, щоб "форматувати клітинки" за замовчуванням до 0000 для чотиризначного #, 00000 для 5 цифр #. тощо ... (повернути ці нулі)

3) Скопіюйте стовпчик і вставте його у файл .txt. (повинні мати всі провідні нулі).

4) Скопіюйте свій .txt список.

5) Клацніть правою кнопкою миші будь-який стовпець у програмі excel та відформатуйте його до тексту.

6) Вставити дані, скопійовані з .txt у стовпець excel. (Усі провідні нулі залишаються)

Розділіть своє бажання серця.


0

Якщо шкода вже зроблена і у вас є дані в Excel, ви можете змінити формат файлу, скориставшись спеціальною опцією "Формат номера". Просто введіть нулі для потрібної кількості місць (нижче зображення буде зроблено шість цифр)

введіть тут опис зображення

Ось макрос, який також зробив би це на вашому аркуші. Просто вкажіть кількість цифр.

Sub whyNot()
Dim WS As Worksheet, fMat As String, p As Long

    '''''Custom Options
    Const NumberOfPlaces As Long = 3 '' change this to number of places you want
    Set WS = ActiveSheet 'or specify the sheet name with Sheets("Sheet1")


        For p = 1 To NumberOfPlaces
        fMat = fMat & "0"
        Next p

        WS.UsedRange.Cells.NumberFormat = fMat

End Sub
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.