Страницы: 1
RSS
Импорт текста со спецсимволами из csv, При импортировании данных с помощью мастера из csv Excel разбивает текст в кавычках на несколько столбов
 
Сайт выдает csv с разделителями точка с запятой. Если этот файл открыть двойным кликом, Excel начинает автоформатировать данные - некоторые превращаются в даты, некоторые указываются в экспоненциальном виде. Выход есть: в меню Данные выбрать "Из текста" и там всему присвоить текстовое значение.
Но при этом Excel перестает учитывать кавычки, хотя "ограничитель строк" установлен. В результате начинает все скакать (
Вопрос как открыть приложенный файл csv так, чтобы все было текстом, но и чтобы спецсимволы внутри кавычек не учитывались?
 
Хм... При выборе Данные - получение внешних данных - из текста, далее настройки разделителя ";" и указания - ограничитель строк не кавычки, а, например, "нет" получаю.... тоже нечто мне непонятное, но, может, вам понравится? :)
Кому решение нужно - тот пример и рисует.
 
Исходный файл составлен корректно с точки зрения (квази)стандарта CSV. Проблема в том, что Excel при импорте текстовых файлов не "понимает"  символы перевода строк внутри записей (в том числе, и "закавыченные").
Владимир
 
Пытливый, если убрать галочку, тогда даже точка с запятой внутри текстового блока становится разделителем столбцов. Нет, к сожалению такой результат не подходит.
sokol92, Вы правы, сбоят символы переводы строки.
Неужели csv никак не открыть в Excel?
 
Безвыходных ситуаций в пограммировании не бывает (если только Вы не пишите программу для перевода интернет-страниц с английского языка на русский :) ).

Самое разумное - поменять "нехорошие" переводы строк в исходном файле, на, скажем, пробел. Если задача, поставленная Вами, носит разовый или эпизодический характер, то можно начать с поиска в Яндексе "программа для замены символов в файле".
Владимир
 
Цитата
sokol92 написал:
поменять "нехорошие" переводы строк в исходном файле, на, скажем, пробел. Если задача, поставленная Вами, носит разовый или эпизодический характер
Задача не разовая. Да и в принципе в эту "особенность" работы с csv упираюсь не первый раз в жизни. В прошлые разы было разово и там как то решил. В этот раз так не отмахнуться.
Заменять не получится, так как либо это потеря форматировния, либо потом после процедуры импорта/экспорта снова придется все удалять.
 
Предлагаю следующий план действий:
  1. макросом копируем исходный файл с заменой символов перевода строки (chr(10), vbLf), которые расположены внутри полей, ограниченных двойными кавычками, на, скажем, символ вертикальной табуляции (chr(11), vbVerticalTab)
  2. импортируем новый текстовый файл
  3. после импорта делаем (метод Replace объекта Range) обратную замену vbVerticalTab->vbLf
Если автор темы одобряет план, то остается написать макрос для п. 1 (это не долго).
Владимир
 
Спасибо, за советы. Где то на форуме подсмотрел про утилиты преобразования. Воспользовался TotalCSVConverter. Оказалось даже удобнее превращать csv в xls, чем в Excel и Open - простой клик на ярлыке на рабочем столе и файл уже сформирован. Все в формате "текст" искажений нет.
 
Нормальное решение. Кстати, в Power Query исправлен указанный недостаток при импорте текстовых файлов.
Владимир
Страницы: 1
Читают тему
Наверх