Как я заставляю Excel импортировать файл CSV с запятыми в некоторых полях содержания?

Как я заставляю Excel импортировать мой файл CSV?

Файл

У меня есть файл, утверждающий быть CSV. Это содержит 10 полей, все из которых окружаются двойными кавычками (да, даже даты и числа.) 2 или 3 из этих полей содержат запятые. Но данные в этих полях также окружаются кавычками.

Проблема

Когда я пытаюсь открыть этот файл, Excel полностью игнорирует кавычки и предполагает, что они - часть данных.

Это поэтому разделяет поля, содержащие запятые в несколько столбцов.

Это плохо, по крайней мере, для меня.

Данные в качестве примера

"20051", "", "2009 Sep 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 - SOMETEXT - SOMETEXT, 1162 - SOMETEXT - SOMETEXT, 140 - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT"
"20052", "SOMETEXT", "2009 Sep 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"

Что я попробовал?

Я использовал средство импорта для определения разделителей и такого, но это, кажется, не помогает.

Я попытался переключить "текстовый Разделитель" от двойной кавычки ни до "{одного}" и назад снова. Это, кажется, только влияет на первый столбец. Это было бы resasonable, если бы было возможно нажать другие столбцы и применить эту установку на каждого. Но дело обстоит не так, и кажется, что это предназначается для работы через столбцы.

Что еще я могу попробовать?

13
задан 27.06.2012, 14:30

4 ответа

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

Я создал 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",...

достойная замена Регулярного выражения должна смочь обработать его с

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

(символы вертикальной черты только для визуальных индикаторов)

Или просто измените код .NET, если у Вас есть доступ к нему ;-)

Кроме того, как Arjan указал, Вы, возможно, также должны преобразовать файл от UTF-8 до ANSI для предотвращения ячейки A1 от содержания BOM и его окружающих кавычек.

Я столкнулся с Выгодой, 22 из ANSI закодировали CSV, не обрабатывающий международные символы, и UTF закодировал CSV, не являющийся propery обработанный Excel; и не найденный решением, в то время как mainting CSV. Если поддержка международного символа требуется, XML (или собственный XLS), форматы кажутся единственным способом пойти — за счет простоты.

13
ответ дан 07.12.2019, 11:30
  • 1
    Никакие умные кавычки не включены. Этот файл был сгенерирован для использования меток кавычки станд. из программы, записанной в .NET. – Rory Becker 07.10.2009, 13:50
  • 2
    , я не намеревался сказать, что файлы UTF-8 должны быть закодированы по-другому. Но при импорте UTF-8, затем действительно нужно сказать Excel, каково кодирование. И UTF-8 скрыт где-нибудь ниже в том длинном списке кодировки. – Arjan 07.10.2009, 15:14
  • 3
    я импортировал много UTF-8, закодировал файлы CSV. Я - примечание, уверенное, если у них был BOM все же. – Arjan 07.10.2009, 15:16
  • 4
    @lumbarious: Вы - ЗВЕЗДА! Работы отлично... Я не могу полагать, что Excel не может иметь дело с этим :( – Rory Becker 07.10.2009, 15:23

Вы могли также попробовать CSVEd, который свободен.

2
ответ дан 07.12.2019, 11:30

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

Если Вы случайно не используете умные кавычки как lumbarius, предложенный, и предполагаете, что находитесь в Windows: это могло бы произойти из-за Ваших региональных настроек. При двойном щелчке или использовании Файла», Открытого, затем, Excel не просит у Вас детали, но просто использует эти настройки.

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

2
ответ дан 07.12.2019, 11:30

Вы проверили кодировку символов своего файла? Попытайтесь установить кодировку символов на UTF-8.

Можно использовать notepad2 для изменения кодировки символов.

1
ответ дан 07.12.2019, 11:30
  • 1
    Кодированием, как сообщает Notepad2, является "UTF8 с подписью" – Rory Becker 07.10.2009, 13:53
  • 2
    Затем при импорте необходимо прокрутить вниз в списке кодировок. UTF-8 скрыт где-нибудь низко в списке. (Никакая потребность использовать UTF-8 не закодировала файлы CSV, но поскольку Ваш вход уже является UTF-8, действительно необходимо сказать Excel, что должно использоваться. Обратите внимание, что нормальный символ кавычки был бы закодирован то же в ASCII, Западном и UTF-8, но возможно подпись (Порядок байтов Mark) или некоторые другие символы действительно портит?) "занавески" – Arjan 07.10.2009, 14:01

Теги

Похожие вопросы