чтение csv файлов | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Раньше в старом ексел можно было такие файлы читать
При открытии ексел спрашивал разделитель, ставили запятую и все Сейчас это в пункте меню data-импорт из текстовых файлов. Ставлю разделитель запятая, все равно в первую колонку помещается огромный текст с запятыми. Разбиения на колонки нет по разделителю запятая Пришлось писать на фоксе программу с getwordcount, getwordnum потом из курсора переносить уже в ексел. Все почти решилось, остался пустяк. Иногда в тексте файла встречается кусок типа "Вова, Галя", который нужно поместить в одно поле фокса или колонку ексел Поскольку в функциях указывал разделителем запятую, все это разъехалось на разные поля и колонки. Сейчас сижу клею это назад. |
Re: чтение csv файлов | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Если экселем открывать файл с расширением CSV, то открывает ничего не спрашивая, иногда не понимая разделителя (запятая - точка с запятой, табуляция). Но если "испортить" расширение, например на "CSV_", то эксель начинает задавать вопросы про разделитель, про тип данных в колонках (например, в CSV 20-значный номер счета в банке эксель открывает как целое число, причем теряя точность). Поэтому открываю такие CSV как текстовый файл, с обязательной порчей расширения...
|
Re: чтение csv файлов | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Это тоже пробовал, вопросы аналогичные указанному выше data-import from text пункту меню,
и тоже на запятые не разделил |
Re: чтение csv файлов | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Если разделитель - запятая, то надо как-то экранировать запятые в тексте... Но лучше делать разделитель точку с запятой или табуляцию. Эксель, в программном режиме, делает разделитель-запятую. Чтобы была ТСЗ, надо ставить флажок Local
Про экранирование: * О записи ВКПС в файл CSV: habrahabr.ru * Если значение содержит в себе CRLF, CR, LF (символы-разделители строк), двойную кавычку или запятую (символ-разделитель полей), * то заключение значения в кавычки обязательно. В противном случае — допустимо. * т.е. допустимы переводы строк внутри поля. Но такие значения полей должны быть обязательно закавычены, * Не получается с CSV ТАБ-разделителем (TXT) * Если внутри закавыченной части встречаются двойные кавычки, то используется специфический квотинг кавычек в CSV — их дублирование. (получается, но вроде и без этого было хорошо...) Вот так боролся с открыванием CSV в экселе: |
Re: чтение csv файлов | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
В общем все дело было в наличие двойных кавычек
вокруг полей. Причем, в некоторых полях внутри текста с двойными кавычками иногда могла встречаться запятая. Если в эксел кроме разделителя запятая указать двойные кавычки, то разбиение по запятой происходит. Правда в случает с доп запятой внутри поля часть поля после запятой уходит в другое поле Еще баг. Некоторые колонки, где лежит число с одной точкой несмотря на указание текстового типа для колонки выдает иногда что-то типа январь 1 или 4 февраль. Моя программа на фоксе работает раз в 3 медленнее, но делает все верно. Сами файлы- результат массовых чтений с интернет. Их довольно много В фоксе в проге пишу sys(2000,'csv') и цикл по непустому файлу В ексел приходится самому подсовывать каждый файл, везде задавать разделители, тип колонок текст-морока. |
Re: чтение csv файлов | |
---|---|
ВладимирС Автор Сообщений: 1693 Дата регистрации: 03.11.2005 |
Хм... Не знаю какой у Вас эксель, но у меня MO 365. То действительно через "data-импорт" из текстовых файлов. Причем есть кнопка "Преобразовать данные". И там все можно перенастроить и какой разделитель, а так же тип колонки. Провел эксперимент с разделителем зпт и тсз. Все нормально импортирует. Даже при разделителе зпт и в колонке имеется зпт, но текст обрамлен двойными кавычками. |
© 2000-2024 Fox Club  |