Почему Excel отображает лидирующие нули при отображении данных CSV?
У меня есть текстовый файл CSV со следующим содержанием:
"Col1","Col2"
"01",A
"2",B
"10", C
Когда я открываю его в Excel, он отображается так, как показано здесь:
Обратите внимание, что Cell A2
пытается отобразить "01" как число без начального "0".
Когда я форматирую строки со 2 по 4 как "Текст", он меняет отображение на
... но все еще ведущий "0" ушел.
Есть ли способ открыть файл CSV в Excel и увидеть все лидирующие нули в файле, щелкнув по какой-нибудь опции? Я не хочу повторять '01 'в каждой ячейке, которая должна иметь начальный ноль. Кроме того, использование ведущего апострофа требует сохранения изменений в формате XLS, когда требуется CSV. Моя цель состоит в том, чтобы просто использовать Excel для просмотра фактического содержимого файла в виде текста без Excel, пытаясь сделать мне какие-либо предпочтения форматирования.
4 ответа
Когда вы откроете CSV, у вас будет возможность указать разделитель и тип данных для каждого столбца. Мастер импорта текста состоит из 3 шагов. Обратите внимание, что мои снимки экрана взяты из Excel 2010, но в Excel 2003 это будет работать точно так же.
Шаг 1: выберите разделитель (вместо фиксированной ширины)
Шаг 2: выберите запятую в качестве разделителя
Шаг 3: выберите каждый столбец и измените формат данных на "текст". (Вы увидите слово Текст, отображаемое над каждым столбцом, как на снимке экрана ниже.)
Ведущие нули больше не будут удалены:
ОБНОВЛЕНИЕ : Если вы не хотите перемещаться по процессу, чтобы заставить Excel сотрудничать, вы можете использовать CSVEd , редактор, разработанный специально для редактирования текстовых файлов с разделителями. Хороший текстовый редактор, такой как Notepad ++, также может работать, но вы не сможете увидеть ваши данные в столбцах.
Просто столкнулся с этим вопросом. Если вы контролируете создание файла CSV, вы можете сделать так, чтобы данные выглядели следующим образом:
"Col1","Col2"
="01",A
="2",B
="10", C
При открытии в Excel он сохранит 01.
Отформатируйте столбец так, чтобы он отображал, как вы хотите (например, 00 для 2 цифр)
Это имеет то преимущество, что оно будет сохранено с этими цифрами (но вам придется изменять форматирование каждый раз, когда вы редактируете CSV)
1) Вставьте мои числа в столбец Excel (это удалит начальные нули)
2) Затем щелкните правой кнопкой мыши, чтобы "отформатировать ячейки", настроенные на 0000 для 4-значного #, 00000 для 5-значного #. и т.д...(вернуть эти нули)
3) Скопируйте столбец и вставьте его в текстовый файл. (должен иметь все ведущие нули).
4) Скопируйте ваш список.txt.
5) Щелкните правой кнопкой мыши по любому столбцу в Excel и отформатируйте его в текст.
6) Вставьте данные, скопированные из.txt в столбец Excel. (Все ведущие нули остаются)
Раздели к своему сердцу желание.
Сначала скопируйте все данные / столбцы и строки из фактического листа Excel в другой лист Excel, чтобы быть в безопасности, чтобы у вас были фактические данные для сравнения. шаги,
- Скопируйте все значения в столбце и вставьте их в блокнот.
- Теперь измените тип столбца на текст в листе Excel (он обрежет предшествующие / конечные нули), не беспокойтесь об этом.
- Перейдите в Блокнот и скопируйте все значения, которые вы вставили только сейчас.
- Перейдите на свой лист 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