Excel только помещает кавычки вокруг определенных полей. Как заставить Excel сохранить файл CSV с кавычками вокруг каждого столбца?
Excel только помещает кавычки вокруг определенных полей. Как заставить Excel сохранить файл CSV с кавычками вокруг каждого столбца?
Ответы:
Если вы откроете файл XLS в LibreOffice или OpenOffice, затем «Сохранить как ...» и выберите «Текст CSV», это позволит создать файл CSV, который также содержит кавычки в качестве разделителей. Например: «Смит», «Пит», «Канада», «Джонс», «Мэри», «Англия»
Просто установите флажок «Цитировать все текстовые ячейки»:
Чтобы также заключить в кавычки числовые поля, выделите диапазон ячеек и измените форматирование ячейки на «текст» перед сохранением.
На этой странице также есть решение, которое приходит прямо изо рта лошади:
http://support.microsoft.com/kb/291296/en-us
Если ссылка ухудшается, тема для поиска:
«Процедура экспорта текстового файла с разделителями-запятыми и кавычками в Excel» и / или «Q291296»
tl; dr: использовать их макрос
Я нашел это простое решение:
"''"@"''"
(см. Подробности ниже)Вставляемая строка - "''"@"''"
это двойная кавычка, одинарная кавычка, одинарная кавычка, двойная кавычка, символ @, двойная кавычка, одинарная кавычка, одинарная кавычка, двойная кавычка.
Отредактировано для Excel 2010 из информации, найденной здесь .
\"@\"
Похоже, Powershell сбрасывает правильно. так что-то вроде
ищите powershell.exe на компьютере с Windows, если вы не знаете powershell.
import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8
Надеюсь, это кому-нибудь поможет.
import-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8
. не забудьте использовать одинарные кавычки вокруг имен файлов с пробелами или другими специальными символами.
Это было проще всего для меня: я импортировал электронную таблицу в Access 2010 и экспортировал ее оттуда в виде текстового файла с разделителями. Дали мне кавычки вокруг моих полей. Теперь у меня уходит 42 минуты на ряды, когда у меня есть ступеньки вниз.
Я нашел другую работу, которая не связана с макросом VBA, но требует Notepad ++ или подобного текстового редактора на основе макросов.
Экспортируйте ваш файл в виде текста, разделенного табуляцией, затем откройте экспортированный файл в Notepad ++. Замените все вхождения символа «табуляция» текстом «,» (т.е. буквально двойные кавычки, запятые, двойные кавычки), а затем используйте другой макрос для добавления префикса и суффикса к каждой строке текста с двойной кавычкой.
Немного странно, но я нашел это быстрее, чем заставить работать макрос VBA.
Выделите ячейки, которые вы хотите добавить кавычки. Перейдите в «Формат» -> «Ячейки» -> «Пользовательское копирование» / вставьте в поле «Тип» следующее: \ »@ \» Нажмите «ОК». Будьте рады, что вы не сделали все вручную.
От: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatics/
"''"@"''"
(см. Подробности ниже)' '
(повторяющиеся одинарные кавычки) на "
(двойные кавычки);
Если вы используете Notepad ++ для добавления кавычек в начало каждой строки, просто откройте экспортированный CSV-файл, поместите курсор на 1-ую строку, 1-й столбец, затем выберите меню « Редактировать / Редактор столбцов ...» в поле « Текст для вставки », введите " , тогда в начале каждой строки будет кавычка, затем вы можете использовать регулярное выражение для поиска / замены всех вкладок.
Для пользователей Windows
Обратите внимание, что это не та же самая кавычка клавиатуры, которая имеет прямое и обратное разнообразие.
Так что если вы используете CSV для загрузки в таблицу MySQL, вырежьте и вставьте в параметр ENCLOSED, иначе вы будете удивляться, почему вы получаете сообщение#1083 - Field separator argument is not what is expected
Я использовал подход ниже, чтобы взять три столбца в Excel и построить строку в четвертом столбце.
=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""
Моя проблема с "''"@"''"
подходом - второй столбец моих данных - число, "''"@"''"
подход не сделал ничего с числами. Иногда второй столбец пуст, но мне нужно было убедиться, что он представлен в окончательном текстовом файле.
Другой способ, если у вас есть доступ MS (у меня версия 2007), импортируйте файл и экспортируйте его как текстовый файл. Затем измените .txt на .csv. Обратите внимание, что все числовые поля не будут иметь двойных кавычек вокруг него, поэтому, если вам нужны двойные кавычки вокруг чисел, тогда в Access измените поле с числового поля на текстовое поле.
Экспорт разделенных запятыми и заключенных в кавычки строк можно выполнить только в Excel 2016 и Блокноте, используя копию данных, формулу, экспорт, изменение свойств файла, замену в Блокноте, сохранение экспортированного файла и очистку. Каждый простой шаг. В деталях:
Скопируйте столбцы, которые нужно экспортировать, на новый промежуточный лист, чтобы сохранить оригинал и в качестве резервной копии, с последующим удалением нового листа, чтобы оставить электронную таблицу такой, какой она была.
Поместите в противном случае не встречающиеся символы, скажем «#» или «;-)» на каждом конце строки в столбце, скажите A с формулой =concat("#",trim(A1),"#")
, поместив формулу на все строки другого столбца.
Скопируйте новый столбец (столбцы) обратно через A ..., используя метод 123, чтобы не содержать формулу.
Экспортируйте лист как файл CSV, чтобы поставить запятые между полями, включая числа.
Измените свойства файла .csv, чтобы его можно было открыть с помощью Блокнота.
Используйте Блокнот, чтобы заменить произвольные символы на «».
Хотя было бы разумно использовать «в качестве произвольного символа», его нужно поместить в другую ячейку, скажем, «$ A $ 50», и тогда при экспорте появляется «» «», очевидно, еще один неудобный триггер.
В блокноте файл должен быть сохранен, став импортируемым * .txt файлом, а промежуточный * .csv удален.
С очисткой дополнительной таблицы миссия выполнена.
Возможно, инструменты экспорта Access могут когда-нибудь быть встроены в Excel. Более общий подход среди тех программ, которые используют вырезание и вставку, заключался бы в том, чтобы опции вставки включали выбор способов интерпретации структуры вывода и предоставления разделителей.
Ответ Михаила от 21 августа 2014 года действительно полезен. Однако мне пришлось выполнить еще один или два дополнительных шага:
Это мой рецепт. Я ненавижу делать это, но у меня не было лучшего способа. В моем случае я не получаю кавычки вокруг любой области. Мне также нужно было использовать кодировку UTF-8 и; вместо вкладок, вот что я закончил делать.
ПРИМЕЧАНИЕ: из-за легкости размещения двойных кавычек, заключенных в одинарные кавычки и т. Д., Я специально использовал «форматирование клавиатуры» для обозначения как нажатий клавиш, так и буквенных символов и строк.
Я сталкивался с этой проблемой много раз. Вот самое простое решение, которое я придумала.
Доступ позволит вам указать экспортирующий разделитель в виде запятой и соответствующие текстовые поля с кавычками. В мастере экспорта вы можете указать любой разделитель или символ вокруг строк, которые вы хотите.
Вам может потребоваться создать запрос Access, чтобы расположить поля в определенном порядке или скрыть поле автоматического идентификатора, добавленное Access.
Также ... после экспорта в CSV, НЕ открывайте его снова в Excel. Если вы хотите посмотреть на результаты, откройте его в блокноте. Excel имеет тенденцию связываться с данными CSV .... Я думаю, что это были поля, заполненные лидирующими нулями, если я правильно помню.
Вот как использовать приложение OpenOffice, чтобы взять электронную таблицу Excel и создать текстовый файл (csv) с кавычками вокруг каждого текстового поля.
Откройте файл Excel с помощью OpenOffice, затем выполните следующие действия:
Файл> Сохранить как
Укажите новое имя для файла, который вы собираетесь создать
Для Тип файла выберите «Тест CSV (.csv)»
установите флажок «Изменить настройки фильтра»
нажмите «Сохранить»
выберите «Сохранить текущий формат»
Разделитель поля должен быть запятой:,
Текстовый разделитель должен заключаться в кавычки:
установите флажок «Цитировать все текстовые ячейки»
нажмите "ОК"
Это сработало для меня!