Як змусити Excel імпортувати файл CSV з комами в деякі поля вмісту?


13

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

Файл

У мене є файл, який претендує на CSV. Він містить 10 полів, усі вони оточені подвійними лапками (так, навіть дати і числа.) 2 або 3 цих полів містять коми . Але дані в цих полях також оточені цитатами.

Проблема

Коли я намагаюся відкрити цей файл, Excel повністю ігнорує цитати та припускає, що вони є частиною даних.

Тому він розбиває поля, що містять коми, на кілька стовпців.

Це погано, принаймні для мене.

Приклад даних

"20051", "", "2009 30 вересня 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008 - 99999 - -99999, 2008 - unk - unk", "191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, 194 - SOMETEXT - SOMETEXT, 195 - SOMETEXT - SOMETEXT, 196 - SOMETEXT - SOMETEXT "," 45 - SOMETEXTT - SOMETEXTT - SOMETEXTT - SOMETEXTT - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT "
"20052", "SOMETEXT", "2009 вересня 08 07:56:50", "SOMETEXT", "", "50000", "5000000", "2007 - 99999 - 99999", "146 - SOMETEXT - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT "," 103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT - SOMETEXT "

Що я спробував?

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

Я спробував переключити "Розмежувач тексту" з подвійної цитати на "{none}" і знову назад. Схоже, це стосується лише першого стовпця. Це було б розумно, якби можна було натиснути інші стовпці і застосувати це налаштування до кожного. Але це не так, і, здається, це призначене для роботи через колонки.

Що ще я можу спробувати?


1
Яка версія Excel? І це повністю зафіксовано?
harrymc

Я бачив це у 2002 та 2007 роках. Я не впевнений у 2007 році, але я впевнений, що 2002 рік був повністю
оновлений

Чи можете ви надати посилання на CSV? Або скорочена версія, яка демонструє проблему?
Джош Комлі

Додані приклади вище наведених даних
Рорі Бекер

Відповіді:


13

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

Я створив 1-й рядок CSV у Word (який використовує розумні лапки) як test.csv "123", "4,5,6", і він відкрився в Excel, як ви описали.

Спробуйте замінити "і" на "


Граючи з вашим зразком, я помічаю, що Excel не любить пробілів між полями

наприклад замість

"20051", "", "2009 Sep 30 02:53:23", ...

ти хочеш

"20051","","2009 Sep 30 02:53:23",...

гідна заміна Regular Expression повинна мати можливість з нею впоратися

Find:    |("[^"]*",) |
Replace: |\1|

(символи труби лише для візуальних підказок)

Або просто змінити .Net-код, якщо у вас є доступ до нього ;-)

Крім того, як зазначав Ар'ян , вам також може знадобитися перетворити файл з UTF-8 в ANSI, щоб уникнути, щоб комірка А1 містила BOM та навколишні її qoutes.

Я зіткнувся з кодованим CSV Catch 22 з ANSI, який не обробляє міжнародних символів, і CSV, кодованим UTF, CSV, який не піддається операційній обробці Excel; і не знайшли рішення під час підтримки CSV. Якщо потрібна міжнародна підтримка символів, єдиним способом здається формати XML (або нативний XLS) - ціною простоти.


Ніяких смарт-котирувань не задіяно. Цей файл був створений для використання знаків std цитата з програми, написаної в .Net.
Рорі Бекер

Я не збирався говорити, що файли UTF-8 повинні кодуватися по-різному. Але при імпорті UTF-8 тоді дійсно треба сказати Excel, що таке кодування. І UTF-8 прихований десь внизу в тому довгому списку кодувань.
Ар'ян

Я імпортував багато файлів CSV, закодованих UTF-8. Я зауважу, впевнений, якщо вони мали BOM.
Ар'ян

@lumbarious: ти ЗВЕЗДА! Відмінно працює ... Я не можу повірити, що Excel не може з цим впоратися :(
Rory Becker

1
Так, пробіли між полями повністю заплутують програму Excel 2011. Видалення пробілів виправляє проблему, а також запобігає включенню Excel у лапки лапок як частину даних. Я здогадуюсь, що десь є специфікація, яка стверджує, що подвійні лапки лише розмежовують дані, якщо вони безпосередньо примикають до коми.
Пітер Глюк

9

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

Це пробіл після коми!

Це не імпортує у excel;

HEADER1, HEADER2
"1,000", "2,000"

Поки

HEADER1,HEADER2
"1,000","2,000"

Працює!


3
Ласкаво просимо до Супер Користувача! Ця відповідь була написана корисно і зрозуміло. Дякуємо за ваш внесок і ми сподіваємось, що ви будете триматися.
користувач1717828

ЯААС! Прийнята відповідь має реальну відповідь на запитання, поховане на відміну від цієї відповіді. Оп не використовує розумні цитати.
dardub


2

Коли я намагаюся відкрити цей файл, Excel повністю ігнорує цитати та припускає, що вони є частиною даних. Тому він розбиває поля, що містять коми, на кілька стовпців.

Якщо ви часом не з допомогою смарт-лапки , як lumbarius запропонував , і якщо ви перебуваєте на Windows: що може бути пов'язано з вашими регіональними настройками. При подвійному клацанні або використанні Файл »Відкрити, Excel не запитує вас про будь-які деталі, а просто використовує ці налаштування.

І все ж, вручну, що викликає функцію імпорту (як і ви), мав би спрацювати, тому я сумніваюся, що зміна регіональних налаштувань допоможе ...


Це здається скоріше коментарем, а не відповіддю ...
Metafaniel

Ця пропозиція точно вирішила мою проблему! Імпорт CSV (Data> From Text / CSV) не працював так, як очікувалося, але якщо я щойно зробив File> Open у файлі CSV, він спрацював. Тоді я зміг просто скопіювати / вставити всю таблицю в свою іншу робочу книжку.
ВІДКРИТИШтевенДжонс

1

Ви перевірили кодування символів вашого файлу? Спробуйте встановити кодування символів на UTF-8.

Ви можете використовувати notepad2 для зміни кодування символів.


Кодування Notepad2 повідомляється як "UTF8 з підписом"
Rory Becker

Потім, імпортуючи, вам потрібно прокрутити вниз у списку кодування. UTF-8 прихований десь у списку. (Не потрібно використовувати файли CSV, що кодуються UTF-8, але оскільки ваш внесок вже є UTF-8, вам дійсно потрібно сказати Excel, що слід використовувати. Зауважте, що звичайний символ котирування буде закодований однаково в ASCII, Western та UTF -8, але, можливо, підпис (марка порядку байтів) чи якісь інші символи зіпсуються?)
Ар'ян

@Peter Навіщо змінювати офіційне посилання на Вікіпедію? Це взагалі не має сенсу? Ми не хочемо надто багато надсилати людей, і це, безумовно, не гарантує редагування, особливо це стосується дворічної пошти.
slhck

1

Просто додайте тут відповіді: зосередьтеся на просторах після COMMAS у файлах CSV. Excel не подобається цим, якщо ви вказали поля у своїх даних.

Подобається Excel (4 стовпці даних):

a, b, c, d

Але не подобається (3 стовпці даних):

a, "b, c", d

Це так (3 стовпці даних):

a,"b, c",d

Я просто потрапив на цю проблему. Я стукав головою об стіну, поки не дійшов до цієї ноти. Це просто дивовижно. Я запускаю Excel 2017, і ця дурість все ще існує ...
Альберт Годфрінд

1

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

Моє середовище / контекст: у мене є веб-сторінка з деякими питаннями (форми), які містять як подвійні лапки, так і коми. І питання, і відповіді витягуються з бази даних і записуються у файл Excel для звітування.

У мене була та сама проблема, описана вище: Питання, що включали як подвійні лапки, так і коми, розділялися на кілька стовпців у Excel.

У моїх цілях використання двох одинарних лапок замість подвійної цитати зробив свою справу.

-> На веб-сайті дві одиничні цитати виглядають як подвійна цитата для відвідувачів сайту

-> У файлі Excel знову дві цитати мають вигляд подвійної цитати для користувачів, які переглядають дані звіту

Я усвідомлюю, що це рішення допоможе не всім, але, сподіваюся, воно комусь допоможе.


1

Я зміг це зробити за допомогою:

a,b,c,"=""(1,2,3)"""

який дає чотири стовпці:

|  a  |   b   |   c   |   (1,2,3)   |

0

Ще один спосіб зробити це:

  1. Відкрийте файл у LibreOffice або OpenOffice Calc.
  2. Встановіть правильні параметри імпорту, наприклад UTF-8, розділені комами, ...
  3. Збережіть файл як ods або xls
  4. Відкрийте новий файл у Excel.

Таким чином, ви можете встановити правильне кодування, як UTF-8, яке багато (усі?) Версії Excel не можуть правильно обробити без BOM, і вам не доведеться турбуватися про регулярне вираження, яке може замінити текст у полі та ти цього не помічаєш

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