Страницы: 1
RSS
CSV файл открывается в excel, сразу разделяя поля
 
Всем привет !
Я от коллег получаю csv файл, с разделителем |, но в данном файле есть строки, которые содержат знак ;
Когда я открываю такой csv файл в excel , то в тех строках, где содержится ; , сразу данные переносятся по другим ячейкам, а мне это не нужно.
Мне предложили два варианта
1)  в csv заменить ; на другой символ, что мне не хочется
2) настроить excel , что бы он не переносил автоматом данные

Поможет кто  ?
 
Открывайте через импорт внешних данных, там сам себе хозяин как делить на поля.
 
Hugo, В тексте есть числа с .  Excel числа переводит в дату ( Если открывать таким методом  
 
приложите образец файла (небольшой) и покажите как сейчас открывается и как должно открываться, мы подумаем
 
Цитата
MSLOleg написал: Excel числа переводит в дату ( Если открывать таким методом
- внимательнее нужно метод исследовать. Тщательнее!

P.S. а вообще чтоб поставить точный диагноз - нет пока данных о болезни!
Кроме самого файла, нужно ещё знать версию приложения.
 
Цитата
MSLOleg написал:
... csv файл, с разделителем |, но в данном файле есть строки, которые содержат знак ;
...
В тексте есть числа с .  Excel числа переводит в дату ( Если открывать таким методом
Если ваш "csv" (название например: "MSLOleg_csv.csv", путь к файлу csv: "C:\Temp\") выглядит так, как показано ниже:
Код
Header1|Header2|Header3|Header4|Header5
abcdefg|2019/1/12|458.89|-2.98|00000
bcadgfe;2021/1/15|-555.555;666.666|00001
lmkruzx|2021/1/9;777.777;444.444|00002
вы можете открыть его с помощью этого макроса:
Код
Sub fikoo_mikoo()
    Const strPth = "C:\Temp\"
    Const fle = "MSLOleg_csv.csv"
    
    Workbooks.OpenText Filename:=strPth & fle, Origin:=65001, StartRow:=1, DataType:=xlDelimited, _
                       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Semicolon:=True, _
                       Other:=True, OtherChar:="|", _
                       FieldInfo:=Array(Array(1, 2), Array(2, 5), Array(3, 1), Array(4, 1), Array(5, 1)), _
                       DecimalSeparator:=".", TrailingMinusNumbers:=True
    ActiveSheet.Range("A1").CurrentRegion.EntireColumn.AutoFit
End Sub
Изменено: ocet p - 16.01.2021 04:59:12
 
Цитата
ocet p написал:
вы можете открыть его с помощью этого макроса:
не взлетает. не разбивает по колонкам
а если разбивать потом вручную средствами ексел цифры с точками превращаются в даты. Нужен другой макрос
цифры должны быть в коротком формате даты. Типа 8.6
Да и файл для примера неудачный:
Разное количество полей в строках если не считать ; за разделитель
Изменено: Александр Моторин - 16.01.2021 07:31:27
 
Цитата
Hugo написал:
через импорт внешних данных
можно настроить и как обрабатывать даты, и где поля текстовые, а где числовые, и какой в файле десятичный разделитель...
Это я про свой 2010 говорю, ну а у кого используется PQ - там вообще что угодно кажется можно настроить, помню был один подлый csv, с которым исключительно только PQ и справился.
Изменено: Hugo - 16.01.2021 13:03:29
Страницы: 1
Наверх