Как ускорить выгрузку данных в Excel?
Как поступаю: создаю экземпляр Excel-я, изпользую VBA для того, чтобы пробежаться по рабочему листу, вставить данные в ячейки. Соответственно в приложении - работаю с полученным набором данных (ADO), который отображаю для пользователей в гриде.
Что не устраивает? Часто случается так, что запрос возвращает несколько тысяч строк и описанная методика выгрузки в Excel оказывается не очень эффективной: долго.
Довелось увидеть софт, написанный с компонентами DevExpress (это был Quantum Grid, если не ошибаюсь). Там реализована функция выгрузки в Excel. Так вот работает это в разы быстрее.
Собственно вопросы: а как это сделано? Как добиться схожего результата? Правильно ли я понимаю, что выгрузка осуществляется не через COM-сервер (потому и так быстро)?
Цитата: dominator
Правильно ли я понимаю, что выгрузка осуществляется не через COM-сервер (потому и так быстро)?
Где-то было про DDE, не помню. Возможно, оно. Пользовались xlReport-ом. Он в исходниках, но лазать по ним не было времени.
Может это поможет:
если в листе есть формулы, то просто отключи рекалькуляцию
Цитата: December
если в листе есть формулы, то просто отключи рекалькуляцию
Формул нет.
Цитата: koltaviy
Попробую, спасибо:)
Цитата: Freeman
Где-то было про DDE, не помню. Возможно, оно. Пользовались xlReport-ом. Он в исходниках, но лазать по ним не было времени.
Возможно скоро получу экземпляр такого компонента с исходниками. Посмотрю, если сумею разобраться.
Ну если не получится с xlReport (который весьма монструозный :) ) Еще можно посмотреть на исходники EhLib (в свободном доступе версия 3.6) - там тоже есть выгрузка в Excel.