209 похожих чатов

#Интересноначинающим Сильно ли я ошибаюсь, что для PQ, кроме .xlsx ,

всё остальное из Excel файлов - это Зло?

15 ответов

19 просмотров

xls - зло, xlsb - тоже; но это, мягко говоря, не "всё"

Да, как-то день потратил пытаясь понять, почему у меня процентов 10 из xls просто не грузится данных в ячейках.

Андрей
Да, как-то день потратил пытаясь понять, почему у ...

"просто не грузится" это полбеды, вот роняет запрос - беда )))

а в чём затык? вроде известный факт

Александр-Кропочев Автор вопроса
Mikhail Muzykin
а в чём затык? вроде известный факт

Совсем неизвестный, для тех кто Apriori))) Я из автокада навыгружал себе в формате .xls, И думал счастье будет. А оказалось, что как в старом анекдоте, то что вы считали оргазмом оказалось астмой... И вот теперь думаю... А там же ведь есть .txt. Лучше так буду делать

Александр Кропочев
Совсем неизвестный, для тех кто Apriori))) Я из ав...

Можно обращаться к бинарникам и не ловить при этом ошибки о некорректном формате. Для этого придется использовать функцию Binary.Buffer(). Как это выглядит? При создании запроса к файлу автоматически генерится код вида Excel.Workbook( File.Contents("C:\Folder\file.xlsb" ), null, true) Так вот его нужно переделать так: Excel.Workbook( Binary.Buffer( File.Contents("C:\Folder\file.xlsb" ) ), null, true ) В таком случае все содержимое файла уедет в память и дальнейшее обращение функции Excel.Workbook будет происходить именно с памятью, а не с диском. Таким образом мы избегаем конфликта этой функции, которая пытается сделать предпросмотр данных через коннектор ACE.oledb, который к этому не очень предрасположен. Т.е. сначала коннектор полностью грузит содержимое файла в память, и только потом уже PQ лезет в память своими потными ручонками. Проверял, схема рабочая, НО выгрузка очень медленная. А с более-менее большими файлами работать просто мучение. Так что если уж очень надо, то пользуйтесь, но лучше все же текст или xlsx. Возможно такой же прием поможет избежать и глюков при работе с файлами формата xls, но это не проверял, так что не гарантирую. Всех благ.

Алексей (PooHkrd) Семилетов
if...then...else

либо список на два поделить и каждый отдельно обработать

Александр-Кропочев Автор вопроса
Mikhail Muzykin
либо список на два поделить и каждый отдельно обра...

Я вот что-то совсем уже не хочу с .xls дело иметь...

Александр Кропочев
Я вот что-то совсем уже не хочу с .xls дело иметь....

тогда на VBA написать кусок кода и пересохранить всё из xls в xslx

Александр-Кропочев Автор вопроса
Алексей (PooHkrd) Семилетов
if...then...else

...неэффективно, кмк... Хотя....

Александр Кропочев
...неэффективно, кмк... Хотя....

Как проявляется неэффективность?

Александр-Кропочев Автор вопроса
Mikhail Muzykin
Как проявляется неэффективность?

У меня заготовлена функция, которая собирает. У меня теперь есть знание, что она не катит для .xls Но, думаю, что if...then...else это не решение, потому что не знаю сколько надо писать условий для каждого расширения...

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

Обсуждают сегодня

Карта сайта