81

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

16 ответов16

44

Если вы откроете файл XLS в LibreOffice или OpenOffice, затем «Сохранить как ...» и выберите "Текст CSV", это позволит создать файл CSV, который также содержит кавычки в качестве разделителей. Например:"Смит", "Пит", "Канада", "Джонс", "Мэри", "Англия"

Просто установите флажок "Цитировать все текстовые ячейки":Экспорт в CSV с помощью LibreOffice

Чтобы также заключить в кавычки числовые поля, выделите диапазон ячеек и измените форматирование ячейки на "текст" перед сохранением.

42

На этой странице также есть решение, которое приходит прямо изо рта лошади:

http://support.microsoft.com/kb/291296/en-us

Если ссылка ухудшается, тема для поиска:

«Процедура экспорта текстового файла с разделителями-запятыми и кавычками в Excel» и / или "Q291296"

tl; dr: использовать их макрос

16

Я нашел это простое решение:

  1. Выделите ячейки, которые вы хотите добавить кавычки.
  2. Щелкните правой кнопкой мыши и перейдите к: Формат ячеек → Вкладка: Номер → Категория: Пользовательский
  3. Вставьте следующее в поле Тип : "''"@"''" (подробности см. Ниже)
  4. Нажмите «хорошо»

Вставляемая строка - это "''"@"''" которая представляет собой двойные кавычки, одинарные кавычки, одинарные кавычки, двойные кавычки, символ @, двойные кавычки, одинарные кавычки, одинарные кавычки, двойные кавычки

Отредактировано для Excel 2010 из информации, найденной здесь.

7

Похоже, Powershell сбрасывает правильно. так что-то вроде

ищите powershell.exe на компьютере с Windows, если вы не знаете powershell.

import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8

Надеюсь, это поможет кому-то.

4

Это было проще всего для меня: я импортировал электронную таблицу в Access 2010 и экспортировал ее оттуда в виде текстового файла с разделителями. Дали мне кавычки вокруг моих полей. Занимает ступеньки менее чем за минуту для 42к строк.

2

Выделите ячейки, которые вы хотите добавить кавычки. Перейдите в «Формат» -> «Ячейки» -> «Пользовательское копирование» / вставьте в поле «Тип» следующее: \»@ \» Нажмите «ОК». Будьте рады, что вы не сделали все вручную.

От: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatics/

2
  1. Выделите ячейки, которые вы хотите добавить кавычки.
  2. Щелкните правой кнопкой мыши и перейдите к: Форматы ячеек → Вкладка: Номер → Категория: Пользовательский
  3. Вставьте следующее в поле Тип: "''" @ "''" (подробности см. Ниже)
  4. Нажмите «хорошо»
  5. Откройте файл .csv с помощью Блокнота (или аналогичного)
  6. Заменить все '' (повторяющиеся одинарные кавычки) на "(двойные кавычки)
  7. Заменить все ;
  8. Сохраните исправленный файл .csv
2

Я нашел другую работу, которая не связана с макросом VBA, но требует Notepad++ или аналогичного текстового редактора на основе макросов.

Экспортируйте ваш файл в виде текста, разделенного табуляцией, затем откройте экспортированный файл в Notepad++. Замените все вхождения символа «табуляция» текстом «,» (т.е. буквально двойные кавычки, запятые, двойные кавычки), а затем используйте другой макрос для префикса и суффикса каждой строки текста с двойными кавычками.

Немного странно, но я нашел это быстрее, чем заставить работать макрос VBA.

1

Если вы используете Notepad++ для добавления кавычек в начало каждой строки, просто откройте экспортированный CSV-файл, поместите курсор на 1-ую строку, 1-й столбец, затем нажмите меню « Редактировать / Редактор столбцов ...» в поле « Текст для вставки » введите ", тогда в начале каждой строки будет кавычка, затем вы можете использовать регулярное выражение для поиска / замены всех вкладок.

0

Ответ Михаила от 21 августа 2014 года действительно полезен. Однако мне пришлось выполнить еще один или два дополнительных шага:

  1. Откройте файл .csv с помощью Блокнота (или аналогичного)
  2. Заменить все '' (повторяющиеся одинарные кавычки) на "(двойные кавычки)
  3. Заменить все ; (используется в качестве разделителя в немецкой версии Excel) с помощью
  4. Сохраните исправленный файл .csv
0

Другой способ, если у вас есть доступ MS (у меня версия 2007), импортируйте файл и экспортируйте его как текстовый файл. Затем измените .txt на .csv. Обратите внимание, что все числовые поля не будут иметь двойных кавычек вокруг него, поэтому, если вам нужны двойные кавычки вокруг чисел, тогда в Access измените поле с числового поля на текстовое поле.

0

Экспорт разделенных запятыми и заключенных в кавычки строк можно выполнить только в Excel 2016 и Блокноте, используя копию данных, формулу, экспорт, изменение свойств файла, замену в Блокноте, сохранение экспортированного файла и очистку. Каждый простой шаг. В деталях:

  1. Скопируйте столбцы, которые нужно экспортировать, на новый промежуточный лист, чтобы сохранить оригинал и в качестве резервной копии, а затем удалить новый лист, чтобы оставить электронную таблицу такой, какая она была.

  2. В противном случае поместите не встречающиеся символы, скажем «#» или «;-)», на каждом конце строки в столбце скажите "А" с формулой =concat("#",trim(A1),"#") , поместив формулу во все строки другого столбца.

    • Смежные столбцы можно создавать одновременно, но не заключайте в кавычки числа, чтобы они не читались как строки.
    • Обрезка позволяет избежать любых пробелов, которые могут вызвать неумелое поведение при экспорте.
    • Строки не должны содержать «», что может нарушить импорт.
  3. Скопируйте новый столбец (столбцы) обратно через A ..., используя метод 123, чтобы не содержать формулу.

  4. Экспортируйте лист как файл CSV, чтобы поставить запятые между полями, включая числа.

  5. Измените свойства файла .csv, чтобы его можно было открыть с помощью Блокнота.

  6. Используйте Блокнот, чтобы заменить произвольные символы на «».

  7. Хотя было бы разумно использовать "в качестве произвольного символа", его нужно поместить в другую ячейку, скажем, «$ A $ 50», и тогда при экспорте появляется «» «», очевидно, еще один неудобный триггер.

  8. В блокноте файл должен быть сохранен, став импортируемым файлом * .txt, а промежуточный * .csv удален.

  9. С очисткой от дополнительной таблицы миссия выполнена.

Возможно, инструменты экспорта Access могут когда-нибудь быть встроены в Excel. Более общий подход среди тех программ, которые используют вырезание и вставку, состоит в том, чтобы опции вставки включали выбор способов интерпретации структуры вывода и предоставления разделителей.

0

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

=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""

Моя проблема с подходом "''"@"''" заключается во втором столбце моих данных, где число " подход "''"@"''" ничего не делало с числами. Иногда второй столбец пуст, но мне нужно было убедиться, что он представлен в окончательном текстовом файле.

0

Для пользователей Windows

  1. "Сохранить как" Excel файл как CSV
  2. Открыть сохраненный файл с помощью электронной таблицы Mircrosoft Works
  3. "Сохранить как" электронную таблицу как CSV
  4. Все нечисловые поля теперь имеют "вокруг них"

Обратите внимание, что это не та же самая кавычка клавиатуры, которая имеет разновидности вперед и назад.
Поэтому, если использовать CSV для загрузки в таблицу Mysql, вырезать и вставить в параметр ENCLOSED, иначе вы будете удивляться, почему вы получаете сообщение #1083 - Field separator argument is not what is expected

-1

Это мой рецепт. Я ненавижу делать это, но у меня не было лучшего способа. В моем случае я не получаю кавычки вокруг любой области. Мне также нужно было использовать кодировку UTF-8 и; вместо вкладок, вот что я закончил делать.

ПРИМЕЧАНИЕ: из-за легкости размещения двойных кавычек, заключенных в одинарные кавычки и т.д., Я специально использовал "форматирование клавиатуры" для обозначения как нажатий клавиш, так и буквенных символов и строк.

  1. Вставьте новый столбец перед любой другой в вашей электронной таблице Excel (нажмите на заголовок 1-го столбца, выделите весь столбец, щелкните правой кнопкой мыши, выберите "вставить").
  2. Выберите весь диапазон пустых ячеек из нового столбца (они выбраны по умолчанию). В поле формулы введите все, что вы хотите: например, ххх. Нажмите CTRL+ввод, чтобы заполнить весь столбец одним и тем же значением.
  3. Сохраните файл как текст Unicode (* .txt).
  4. Откройте файл в Notepad++.
  5. Нажмите CTRL+f, чтобы открыть поиск / замену.
  6. Перейдите на вкладку "Заменить".
  7. В "Режиме поиска" выберите «Расширенный (\n, \r, \t, \0, \x ...)».
  8. В поле "Поиск" введите xxx плюс нажатие клавиши вкладки.
  9. В поле "Заменить" введите « (двойная кавычка).
  10. Нажмите Заменить все.
  11. В поле "Поиск" поместите нажатие клавиши табуляции.
  12. В поле "Заменить" введите «;» (двойная кавычка, точка с запятой, двойная кавычка).
  13. Нажмите Заменить все.
  14. Вы почти закончили. Для последней двойной кавычки введите \r в поле "Поиск" и «\r» (двойная кавычка, обратная косая черта, двойная кавычка) в поле "Заменить". Нажмите Заменить все.
  15. Пока вы не используете китайский символ и т.д., Вы можете изменить кодировку на UTF-8 и безопасно сохранить файл.
-1

Я сталкивался с этой проблемой много раз. Вот самое простое решение, которое я придумала.

  1. Сохраните файл как Excel
  2. Импортируйте Excel в таблицу доступа
  3. Экспортируйте таблицу из Access в текстовый файл.

Доступ позволит вам указать экспортирующий разделитель в виде запятой и соответствующие текстовые поля с кавычками. В мастере экспорта вы можете указать любой разделитель или символ вокруг строк, которые вы хотите.

Вам может потребоваться создать запрос Access, чтобы расположить поля в определенном порядке или скрыть поле автоматического идентификатора, добавленное Access.

Кроме того ... после экспорта в CSV, НЕ открывайте его снова в Excel. Если вы хотите посмотреть на результаты, откройте его в блокноте. Excel имеет тенденцию связываться с данными CSV .... Я думаю, что это были поля, заполненные лидирующими нулями, если я правильно помню.

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