Як змусити excel процитувати всі стовпці файлу CSV?


89

Excel розміщує лише лапки навколо певних полів, як змусити excel зберегти файл CSV з цитатами навколо кожного стовпця?

Відповіді:


44

Якщо ви відкриєте файл XLS у LibreOffice або OpenOffice, то збережіть як .... і виберіть Text CSV, це дозволяє генерувати файл CSV, який також містить лапки як роздільники. Наприклад: "Сміт", "Піт", "Канада", Джонс "," Мері "," Англія "

Просто встановіть прапорець "Цитувати всі текстові комірки": Експорт до CSV за допомогою LibreOffice

Щоб також цитувати числові поля, виділіть діапазон комірок і змініть формат комірок на "текст" перед збереженням.


7
Хоча це не відповідь на конкретне питання, це простіший спосіб вирішення, ніж намагання змусити своїх клієнтів використовувати макрос!
Duncanmoo

Я втомився використовувати цей метод щодня, тому я тут
vladkras

Я думаю, що це найпростіше і зручне рішення, оскільки OpenOffice - це портативне програмне забезпечення. Вам не потрібно нічого встановлювати або писати коди.
Скотт Чу

найкраща відповідь коли-небудь !!
rajya vardhan

20
Зовсім не відповідь. Питання прямо про MS Excel
vladkras

43

На цій сторінці також є рішення, яке виходить прямо з вуст коня:

http://support.microsoft.com/kb/291296/uk

Якщо посилання погіршується, тема пошуку:

"Порядок експорту текстового файлу з роздільником і комами, і цитатами в Excel" та / або "Q291296"

tl; dr: використовувати їх макрос


10
Можливо, варто зауважити, що макрос використовує Integer для значень рядків і стовпців. Ви отримаєте помилку, якщо спробуєте експортувати більше 32768 рядків. Наприклад, змінивши типи даних на Long, виправите цю проблему.
Дан

Гарне місце (+1). Схоже, вони не оновлювали код, оскільки він був вперше написаний для версій Excel, максимум 32768 рядків.
sahmeepee

9
Я взяв на себе сміливість створити суть з цим макросом, і кілька виправлень: gist.github.com/fabriceleal/7803969
fableal

@fableal Чудовий фрагмент! Це заслуговує на відповідь.
xiankai

Office 2010, як і раніше, згадує велику кількість вибраних рядків, як і @sahmeepee.
access_granted

18

Я знайшов це просте рішення:

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

Рядок, який ви вставляєте, "''"@"''"це подвійна цитата, одинарна цитата, одинарна цитата, подвійна цитата, символ @, подвійна цитата, одинарна цитата, одинарна цитата, подвійна цитата.

Відредаговано для Excel 2010 з інформації, знайденої тут .


Хммм .. це дало мені "ITEM" "(дві одиничні цитати), а не" (одна подвійна цитата). Я саме тоді здійснив пошук і заміни, щоб виправити це.
Clay Nichols

6
Формат мав бути \ ”@ \”
манат

Ця відповідь насправді була ідеальною відповіддю, якщо ви використовуєте LibreOffice - їй повністю відсутня опція "текст" у меню Формат> Формат номера, незважаючи на те, що їх документація наполягає на тому, що варіант є. Якщо ви клацніть правою кнопкою миші «Форматувати клітинки» у LibreOffice, вам надається ПОЛЬНИЙ список варіантів інтерпретації комірок - а не кілька непотрібних 6 варіантів, представлених у спадному меню.
1owk3y

@ манат відповідь, але без фігурних цитат:\"@\"
MSC

12

Здається, що Powershell скидає правильно. так щось подібне

шукайте powershell.exe на машині Windows, якщо ви не знаєте повноважень.

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

Сподіваюся, це комусь допоможе.


Для зручності натисніть клавішу Shift + клацніть правою кнопкою миші в папці, в якій зберігається ваш CSV, і виберіть тут вікно Open PowerShell , яке спрощує команду import-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8. не забудьте використовувати одинарні лапки навколо імен файлів з пробілами або іншими спеціальними символами.
Вальф

4

Для мене це було найпростішим: я імпортував електронну таблицю в Access 2010 і експортував її звідти у вигляді файлу з обмеженим текстом. Дав мені лапки біля моїх полів. Коли я спускаюся вниз, займає менше 42 хвилин для 42-рядкових рядків.


Єдиним недоліком буде, якщо саме поле містить подвійну цитату.
access_granted

3

Я знайшов ще одну роботу, яка не включає макрос VBA, але для цього потрібен Notepad ++ або подібний текстовий редактор на основі макросу.

Експортуйте файл у вигляді відокремленого вкладкою тексту, а потім відкрийте експортований файл у Блокноті ++. Замініть всі екземпляри символу "вкладки" текстом "," (тобто буквально подвійне цитування, кома, подвійне цитування), а потім використовуйте інший макрос для приставки та суфіксу кожного рядка тексту подвійною цитатою.

Трохи хакі, але я знайшов це швидше, ніж отримання макроса VBA.


1
Якби ви хотіли це зробити в «Блокноті ++», вам найкраще використовувати звичайний пошук виразів та заміну, і тоді ви можете виконати всі 3 операції по заміні (початок рядка, вкладки та кінець рядка) в одному місці
sahmeepee

3

Виділіть клітинки, до яких потрібно додати лапки. Перейдіть у формат -> клітинки -> спеціальне копіювання / вставте наступне у поле Тип: \ ”@ \” Натисніть “гаразд”. Будьте щасливі, що ви не зробили це все вручну.

Від: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/


1
Це добре працює для альфа - вам знадобиться \ "# \" для стовпців із числовими значеннями.
DropHit

Між \ "@ \" і \ "# \" це працює. Але мені все ж доведеться редагувати заголовки в Notepad ++ для числових стовпців, а потім замінювати всі "" "на". Який біль.
Гері

Не пробували. Але якщо ви створюєте csv, не можете просто змінити стовпці на текст та скористатися \ "@ \"
Стів Коулман,

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

1

Якщо ви використовуєте Notepad ++ для додавання лапок до початку кожного рядка, просто відкрийте експортований файл csv, покладіть курсор на 1-й рядок, 1-й стовпець, а потім натисніть меню Редагувати / Редактор стовпців ... , у полі " Текст для вставки ", введіть " , тоді на початку кожного рядка буде цитата, тоді ви можете використовувати регулярний вираз для пошуку / заміни всіх вкладок.


0

Для користувачів Windows

  1. "Зберегти як" файл Excel як CSV
  2. Відкрийте збережений файл за допомогою електронної таблиці Mircrosoft Works
  3. "Зберегти як" електронну таблицю як CSV
  4. Усі нечислові поля тепер "навколо"

Зауважте, це не та сама цитата на клавіатурі, яка має різноманітність вперед та назад.
Тож якщо ви використовуєте CSV для завантаження в таблицю Mysql, виріжте та вставте в параметр ENCLOSED, інакше вам буде цікаво, чому ви отримуєте повідомлення#1083 - Field separator argument is not what is expected


3
Mircrosoft Works <-? Ви впевнені в цьому?
nixda

0

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

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

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


0

Інший спосіб, якщо у вас є доступ до MS (у мене є версія 2007), імпортуйте файл, а потім експортуйте його як текстовий файл. Потім змініть .txt на .csv. Зверніть увагу, що всі поля чисел не матимуть подвійних лапок навколо нього, тому якщо вам потрібні подвійні лапки навколо чисел, то під час роботи в Access змініть поле з числового поля на текстове поле.


0

Експорт розділених комами та цитованих рядків можна виконати лише з Excel 2016 та Notepad, використовуючи копію даних, формулу, експорт, зміну властивостей файлу, заміну в Блокноті, збереження експортованого файлу та очищення. Кожен - простий крок. Детально:

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

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

    • Суміжні стовпці можуть бути зроблені одночасно, але не цитуйте числа, щоб уникнути їх читання у вигляді рядків.
    • Оздоблення дозволяє уникнути будь-яких пробілів, які можуть викликати невмілу експортну поведінку.
    • Рядки не повинні містити "" ", що може порушити імпорт.
  3. Скопіюйте нові стовпці назад на A ..., використовуючи метод '123', щоб не переносити формулу.

  4. Експортуйте аркуш у вигляді файлу CSV, щоб укласти коси між полями, включаючи цифри.

  5. Змініть властивості file.csv, щоб його можна було відкрити за допомогою Блокнота.

  6. Використовуйте Блокнот, щоб замінити довільні символи на "" ".

  7. Хоча здавалося б розумним використовувати "як довільний символ, його потрібно помістити в іншу клітинку, скажімо," $ 50 доларів ", і тоді, що з'являється при експорті, це" "" ", очевидно, ще один незручний тригер.

  8. У блокноті файл слід зберегти, перетворившись на імпорт файлу * .txt, а проміжний * .csv видалити.

  9. З очищенням додаткової місії аркуша електронної таблиці виконано.

Можливо, інструменти експортування доступу в один день можуть бути вбудовані в Excel. Більш загальним підходом серед тих програм, які використовують вирізати та вставити, було б, щоб параметри вставки включали вибір способів інтерпретації вихідної структури та надання розмежувачів.


0

Відповідь Майкла від 21 серпня 2014 року справді корисна. Однак мені довелося виконати додатковий крок або два:

  1. Відкрийте файл .csv за допомогою Блокнота (або аналогічного)
  2. Замініть всі '' (повторні одиночні лапки) на "(подвійна цитата)
  3. Замінити все; (використовується як роздільник у німецькій версії Excel) з,
  4. Збережіть переглянутий файл .csv

Немає пояснень для нижчого поступу? Пар за курс, але як очікується, що інші навчатимуться? ВИ, можливо, вважаєте очевидним, що не так, містер Даувотер, але це може бути очевидно не для всіх. Ми намагаємось тут створити громаду, а ви не допомагаєте.
Mawg

-1

Це мій рецепт. Я ненавиджу робити це, але в мене не було кращого шляху. У моєму випадку я не отримую цитат навколо жодного поля. Мені також потрібно було використовувати кодування UTF-8 і; замість вкладок, так це я закінчив робити.

ПРИМІТКА: через нерозбірливість розміщення подвійних лапок, укладених одинарними цитатами тощо, я спеціально використовував "форматування клавіатури" для позначення як натискання клавіш, так і буквальних символів та рядків.

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

-1

Я не раз стикався з цим питанням. Ось найпростіше рішення, яке я придумав.

  1. Збережіть файл у форматі Excel
  2. Імпортуйте Excel у таблицю доступу
  3. Експортуйте таблицю з Access у текстовий файл.

Доступ дозволить вам вказати експорт роздільника як кома та кваліфіковані текстові поля з лапками. У майстрі експорту ви можете вказати потрібний роздільник або символ навколо рядків.

Можливо, вам доведеться створити запит доступу, щоб упорядкувати поля в певному порядку або приховати поле авто-ідентифікатора, додане Access.

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


Це, здається, дублює інформацію у відповіді user326114.
fixer1234

-1

Ось як за допомогою програми OpenOffice взяти таблицю Excel та створити текстовий (csv) файл із лапками навколо кожного текстового поля.

Відкрийте файл Excel за допомогою OpenOffice та виконайте наступні дії:

Файл> Зберегти як

Укажіть нове ім’я для файлу, який ви збираєтеся створити

Для типу файлу виберіть "Тестувати CSV (.csv)"

увімкніть прапорець "Редагувати параметри фільтра"

натисніть "Зберегти"

виберіть "Зберегти поточний формат"

Розмежувач поля повинен бути комою:,

Розмежувач тексту має лапки: "

встановіть прапорець "Цитувати всі текстові комірки"

натисніть "ОК"

Це працювало для мене!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.