7

Я никогда не знаю, как это может случиться.

Я действительно очень ненавижу это.

Это потому, что моя программа рассчитывает, что CSV-файлы являются CSV.

И я никогда не знаю, до сих пор, как мой CSV-файл может стать форматом с разделителями табуляции

Я нажал сохранить как?

Я сохранил как обычно?

Это файлы CSV. Я всегда хочу, чтобы это был CSV.

Иногда я открываю файл и обнаруживаю, что запятая пропала. Я должен сделать

Данные -> текст в столбец

Чтобы исправить это. И затем сохраните снова. Если я сохраню еще раз, все в порядке. Но как, черт возьми, это стало табуляцией в первую очередь? Я никогда не инструктировал Excel, чтобы сохранить его в табуляторе. Как это вообще может случиться? Расширение по-прежнему .csv.

Дополнительная информация

  1. Я редко сохраняю файл. Я обычно выхожу из Excel, и некоторые подсказки могут появиться. Я мог бы спасти его, не зная.
  2. Если я попытаюсь сохранить файл как, Excel по умолчанию будет использовать "txt", даже если файл явно является CSV-файлом.
  3. Тем не менее, если я просто спешу сохранить, он не будет сохранять в файлы .csv. Это сохранит в .csv.txt файлы. Таким образом, мои CSV-файлы, содержащие значение с разделителями табуляции, вообще не имеют смысла.

Программа, использующая CSV, является моей собственной программой. Теперь я согласен, что он может читать и табуляцию и запятую. Тем не менее, программа очень чувствительна к ошибкам, когда дело доходит до ее ввода. Эта ошибка уже стоила мне сотни долларов.

4 ответа4

9

Просто чтобы расширить ответ Chris76786777 на эту возможную ошибку Excel, я также заметил, что если вы откроете файл CSV, закодированный с помощью UTF-8 с заголовком спецификации (UTF-8-BOM), добавите несколько столбцов и просто сохраните он сохранит его с вкладками вместо запятых в качестве разделителя, но вы не увидите (поврежденные) результаты, пока не закроете файл и снова не откроете его в Excel.

Если вы откроете обычный CSV-файл UTF-8 без BOM, то то же самое редактирование, описанное выше, работает просто отлично, и вы можете снова открыть его в Excel в обычном режиме.

Один из способов обойти это - открыть файл CSV в надежном текстовом редакторе, таком как Notepad++ или Vim, и преобразовать кодировку файла из спецификации UTF-8 в обычную UTF-8, прежде чем возиться с ней в Excel. (Я понимаю, что иногда спецификация может понадобиться Excel для правильного понимания разных языков, по крайней мере, в соответствии с этим.) Если вы сможете удалить спецификацию, надеюсь, ваши результаты будут более предсказуемыми (по крайней мере, до тех пор, пока Microsoft не обнаружит, что это поведение немного странно).

5

Когда вы дважды щелкаете файл CSV, и он открывается в Excel, на самом деле происходит то, что Excel обрабатывает его как текстовый файл, однако он преобразуется в столбцы "на лету". Это все еще текстовый файл, хотя.

Чтобы открыть CSV как CSV в Excel, а затем сохранить его как CSV, вам нужно его импортировать.

К сожалению, стандартное действие по импорту CSV из двойного щелчка исчезло в Office 2003.

Для вас это либо привычка импортировать ваши CSV-файлы в Excel всегда (имеет свои преимущества, если у вас большие числа - 12 или более цифр), либо переключиться на другие инструменты - например, OpenOffice.

2

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

Я столкнулся с этой проблемой за последние несколько дней, и это то, что я заметил.

0

То, что сработало для меня, похоже на то, что предложил Расс :

  • Отредактируйте CSV в текстовом редакторе и замените ; с ,

Также установите в моей программе CSV по умолчанию текстовый редактор, а не Excel.

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