-
Здравствуйте знатоки, задача следующая: нужно сохранить содержимое excel документа в html формате. Сразу скажу, что родной метод объекта excel (сохранить как html) не подходит по многим причинам. Делаем программно следующее: 1. создаем объект excel, загружаем в него документ 2. построчно разбираем его активные области (чтение всех необходимых свойств ячеек) 3. собираем html в нужном нам виде.
Все работает, но достаточно медленно. Работа второго пункта очень тормозит. Получение каждой ячейки, чтение всех ее свойств.
Подскажите варианты оптимизации, если они возможны ? Или программно из внешнего приложения нельзя получить ту производительность (или близкую) которой достигает родной метод excel'я. Возможно ли прочитать документ (все свойства всех ячеек) в многопоточном режиме (разделив между ними документ на части).
Заранее благодарен за любую информацию по данному вопросу
-
> Возможно ли прочитать документ (все свойства всех ячеек) > в многопоточном режиме
нет.
> Получение каждой ячейки, чтение всех ее свойств. >
а это обязательно? неужели у каждой ячейки разные свойства? Может быть, можно читать диапазонами?
-
>нет. нельзя прочитать в многопоточном режиме потому что сервер excel - sta?
>а это обязательно? неужели у каждой ячейки разные свойства? Может быть, >можно читать диапазонами? к сожалению нужно читать каждую ячейку *(, или стоп, что значит читать диапазонами ? Имеется в виду что можно прочитать в какую нить структуру указанный range и потом его обрабатывать в памяти ? Если так можно сделать - подскажите пожалуйста как это сделать ?
-
> нельзя прочитать в многопоточном режиме потому что сервер > excel - sta?
да :) . Но можно насоздавать кучу копий файла и работать с каждой отдельно. Но это уже извращение, по-моему
> Имеется в виду что можно прочитать в какую нить структуру > указанный range и потом его обрабатывать в памяти ?
Не слышал о таком.
А как к экселю доступ получаете? Раннее связывание должно быть быстрее.
-
>А как к экселю доступ получаете? Раннее связывание должно быть быстрее. использую компонент с палитры, используется таблица типов, а значит и раннее связывание - насколько я помню - да ?
мдаа, плохо конечно, что все так медленно *(, аналогичный скрипт написанный на vba (в том же документе либо в загруженной надстройке) работает в разы быстрее (раз в 6-7). Должно быть конечно медленнее, но не в разы же *((. наверное придется по якутски делить логику на vba и delphi
|