Delphi и OLE Automation с Excel
Время приведено в минутах и секундах, округленных до ближайшей целой.
Размер электронной таблицы (строки * колонки) |
Заполнение ячейка за ячейкой |
Заполнение одной колонки за один проход |
Заполнение всей таблицы за один проход |
10 * 10 |
0:01 |
0:01 |
>0:01 |
100 * 10 |
0:07 |
0:01 |
0:01 |
1000 * 10 |
1:13 |
0:07 |
0:05 |
5000 * 10 |
5:22 |
0:35 |
0:25 |
|
|
|
|
Приблизительно ячейки/секунды |
150 |
1500 |
2000 |
Только небольшие электронные таблицы могут быть эффективно заполнены методом записи данных в каждую ячейку по отдельности.
Большие таблицы эффективно заполнять колонка за колонкой.
Также необходимо учесть дополнительную сложность при кодировании методом "ячейка за ячейкой".
Использовать буфер для передачи данных также не рекомендуется, так как это нарушит имеющиеся в нем данные и может привести к усложнению и неудобночитаемости кода.
Сохранение данных в CSV-файле и загрузка его в Excel поможет ускорить вывод данных, но для этого потребуется дополнительное форматирование книги Excel в самом коде, что усложняет само кодирование и может привести к дополнительным ошибкам.
Использованные для тестов процедуры:
//----------------------------------------------------------------------- |
Приложение 2 – Использование в Delphi класса-оболочки
Предпочтительней использовать вызовы Автоматизации непосредственно из приложения, нижеприведенный пример демонстрирует технологию создания в Delphi класса-оболочки для использования объектов Excel в ваших приложениях. Это позволит вам иметь простой интерфейс к объектам, а также помочь с любыми изменениями объектных интерфейсов Excel в ее будущих версиях.