it-swarm-ru.tech

Как вы заставляете Excel цитировать все столбцы файла CSV?

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

84
Michael Shnitzer

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

Просто установите флажок «Цитировать все текстовые ячейки»: Export to CSV with LibreOffice

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

44
Pete

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

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

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

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

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

42
sahmeepee

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

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

Вставляемая строка: "''"@"''", которая является двойной кавычкой, одинарной кавычкой, одинарной кавычкой, двойной кавычкой, символом @, двойной кавычкой, одинарной кавычкой, одинарной кавычкой, двойной кавычкой.

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

17
Michael

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

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

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

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

8
ssaviers

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

4
user326114

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

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

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

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

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

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

2
Blueacid

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

1
Michael Zhang

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

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

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

0
Dean

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

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

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

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

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

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

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

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

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

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

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

0
HGB

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

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

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

0
user415149

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

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

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

0
Greg