5

Я столкнулся с проблемой в Microsoft Excel 2010, связанной с автоматическим форматированием строки в дату, и она, похоже, теряет первоначальное значение ячейки.

Действия по воспроизведению:

1 Создайте следующий файл CSV:

 username, points
 phil, 1
 october51, 5

2 Откройте файл в Microsoft Excel 2010

Примечание: есть строка с именем пользователя october51 . Я хотел бы, чтобы Excel сохранил это значение вместо преобразования его в какое-то другое значение.

Пример файла CSV, открытого в текстовом редакторе

Когда я открываю этот образец CSV-файла в текстовом редакторе (например, gVim), я вижу именно то, что ожидаю:

Образец CSV-файла открыт в gVim

Образец файла CSV, открытого в Microsoft Excel 2010

Тем не менее, когда я открываю файл CSV в Excel, форматирует october51 с Oct-51

CSV файл открыт в Excel, октябрь51 был отформатирован как окт-51

Я понимаю, почему Excel пытается отформатировать поле в более удобочитаемый формат, но я бы предпочел оставить значение october51 так как это чье-то имя пользователя.

Пробовать разные форматы ячеек в Excel

Обратите внимание, что при первом открытии файла формат поля для ячейки Oct-51 - Custom. Итак, я попытался изменить формат текста

Это не лучше. Значение ячейки - 18902 вместо october51 чего я и ожидал. Похоже, что Excel выбрасывает исходное значение ячейки сразу после открытия файла.

Я перепробовал все возможные форматы (например, «Общий», «Текст», «Специальный», «Пользовательский»), и ни один из них не вывел значение october51 .

Истинная проблема заключается в том, что это форматирование ячейки сохраняется при сохранении файла. Если я сохраню этот файл в Excel и снова открою его в текстовом редакторе, имя пользователя october51 будет фактически изменено на Oct-51 или 18902 , в зависимости от того, какой формат был выбран для ячейки.

Как сделать так, чтобы Excel сохранил исходное строковое значение ячейки?

4 ответа4

4

Попробуйте следующие шаги:

Переименуйте файл CSV, чтобы иметь расширение TXT (то есть: sample.txt). Откройте пустой лист Excel> выберите «Файл»> «Открыть»>. В окне поиска «Открыть» перейдите к файлу .csv, выбрав «Текстовые файлы (* .txt, * .csv)» в раскрывающемся списке> нажмите «Открыть». ' но сейчас. Смотрите приведенные ниже пошаговые снимки экрана:

Снимите флажок Tab и отметьте запятую:

Выберите кнопку «Текст» и нажмите кнопку «Готово».

Надеюсь это поможет.

3

Вместо открытия CSV-файла в Excel создайте новый рабочий лист и запустите мастер импорта текста (на вкладке «Данные» в группе «Получить внешние данные» выберите «Из текста»). На шаге 3 вы сможете щелкнуть заголовок столбца и изменить тип данных столбца на Текст. Это остановит Excel от интерпретации данных как даты.

Для получения дополнительной информации о мастере импорта текста см. Эту статью.

1

Я просто использовал Calc LibreOffice вместо Excel.

Открытие файла CSV в LibreOffice Calc не портит данные за october51

LibreOffice Calc правильно анализирует данные

0

У меня была такая же проблема при использовании VBA для импорта CSV. Я обнаружил, что это решило проблему изменения текста импорта csv, который начинался с JANxxx, FEBxxx, MARxxx и т.д., В дату, которую нужно было просто установить.TextFileColumnDataTypes = Array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1). Изменение первого значения массива на 2 остановило неверную интерпретацию первого столбца, который содержал текст, которому мешали.

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