Как избежать двойных кавычек при сохранении файла Excel в Unicode?


9

У меня есть файл Excel с содержимым Unicode, некоторые ячейки которого содержат текст, например, в двойных кавычках "text".

Когда я сохраняю файл Excel в текстовый файл в формате Unicode, текст, содержащий двойные кавычки, сохраняется, например, в виде трех двойных кавычек """text""".

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

Как я могу избежать этого?

Ответы:


7

Это стандартное поведение (и похоже на способ сохранения CSV-файлов). См. RFC 4180 - Общий формат и MIME-тип для файлов значений, разделенных запятыми (CSV) :

Если двойные кавычки используются для включения полей, то двойная кавычка, появляющаяся внутри поля, должна быть экранирована, предшествуя другой двойной кавычке.

Как это относится к вашему делу?

  • Это означает, что они "Text" должны быть сохранены как """Text""", внешние кавычки, ограничивающие поле, и две другие кавычки используются для экранирования фактических кавычек, которые вы использовали для своего текстового поля. В противном случае, "Text"будет просто проанализирован как Textи вы потеряете свои кавычки при повторном открытии файла.

  • Excel также выбирает заключать в кавычки Text,, потому что запятая используется в качестве разделителя в файлах, разделенных запятыми, и не заключая ее в кавычки, будет означать, что text,при повторном открытии файла он будет анализироваться как два поля.

Если вы не хотите, чтобы они выводились, попробуйте открыть полученные файлы в текстовом редакторе и удалить все кавычки с помощью простого поиска и замены.


2
Вы имеете в виду, что нет другого способа решить проблему, кроме как заменить их в текстовом редакторе.
kartik

Не совсем, так как Excel должен делать это из соображений совместимости. Возможно, было бы возможно создать макрос, который выполняет пользовательский экспорт, но я не эксперт в этом.
Slhck

Хорошо, спасибо, может быть, я постараюсь заменить его в сторону кодирования.
karthik

@slhck: я столкнулся с проблемой при сохранении Unicode как CSV в 2010 году. superuser.com/q/1210099/234380
NJMR

3

У меня тоже была эта пробема. Затем я заметил, что пропускаю опцию Сохранить как тип: параметр « Форматированный текст (разделенный пробелами) ». Вы также должны указать. Расширение TXT , или оно будет по умолчанию с расширением .prn. Например, filename.txt вместо просто filename. Попробуй это . Это работает .


Будет разделяться пробелом вместо табуляции, а столбцы по умолчанию будут иметь ширину около 8 символов.
JosiahYoder-деактивен, кроме ..

Это не работает, если клетки содержат что-то вроде "A short sentence". Ответ Пита ниже - единственный, который сработал для меня.
Мика Линдстрем

2

Сохранение в Unicode, казалось, добавляло кавычки, даже когда в моей строке не было кавычек. Вот как я обошел это:

  1. Найдите строку, которой нет в вашем файле (я использовал xxx).
  2. Перед экспортом найдите и замените все двойные кавычки "наxxx
  3. Экспортируйте ваш файл в txt или csv.
  4. Открыть текстовые файлы и найти и заменить все кавычки ничем
  5. Найти и заменить все xxxцитаты

Обратите внимание, replacementне используйте 'replacement'. Замена двойных кавычек чем-то, включающим одинарную кавычку, вызывает проблемы, если это происходит в начале ячейки. По сути, Excel видит в начале ячейки одну кавычку, означающую интерпретацию ее как текста, поэтому она удаляется при экспорте в txt / csv. Я нашел это трудным путем, лол.
Мика Линдстрем

0

Просто сохраните файл как разделитель пробелов в файле Excel и затем переименуйте его в .txt. Я использовал это для кризиса 18000 строк. ;)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.