Как я заставляю 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, если бы было возможно нажать другие столбцы и применить эту установку на каждого. Но дело обстоит не так, и кажется, что это предназначается для работы через столбцы.
Что еще я могу попробовать?
Я просто попробовал быстрый тест, который копировал Вашу проблему.
Я создал 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), форматы кажутся единственным способом пойти — за счет простоты.
Когда я пытаюсь открыть этот файл, Excel полностью игнорирует кавычки и предполагает, что они - часть данных. Это поэтому разделяет поля, содержащие запятые в несколько столбцов.
Если Вы случайно не используете умные кавычки как lumbarius, предложенный, и предполагаете, что находитесь в Windows: это могло бы произойти из-за Ваших региональных настроек. При двойном щелчке или использовании Файла», Открытого, затем, Excel не просит у Вас детали, но просто использует эти настройки.
Однако, руководство, вызывающее функцию импорта (как Вы сделал), должно было работать, таким образом, я сомневаюсь, что изменение региональных настроек поможет...
Вы проверили кодировку символов своего файла? Попытайтесь установить кодировку символов на UTF-8.
Можно использовать notepad2 для изменения кодировки символов.