Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2011.05.29;
Скачать: [xml.tar.bz2];

Вниз

Как оптимизировать чтение excel документа   Найти похожие ветки 

 
msgipss   (2007-03-20 16:41) [0]

Здравствуйте знатоки,
задача следующая: нужно сохранить содержимое excel документа в html формате.
Сразу скажу, что родной метод объекта excel (сохранить как html) не подходит по многим причинам.
Делаем программно следующее:
1. создаем объект excel, загружаем в него документ
2. построчно разбираем его активные области (чтение всех необходимых свойств ячеек)
3. собираем html в нужном нам виде.

Все работает, но достаточно медленно. Работа второго пункта очень тормозит. Получение каждой ячейки, чтение всех ее свойств.

Подскажите варианты оптимизации, если они возможны ? Или программно из внешнего приложения нельзя получить ту производительность (или близкую) которой достигает родной метод excel"я.
Возможно ли прочитать документ (все свойства всех ячеек) в многопоточном режиме (разделив между ними документ на части).

Заранее благодарен за любую информацию по данному вопросу


 
umbra ©   (2007-03-20 19:14) [1]


> Возможно ли прочитать документ (все свойства всех ячеек)
> в многопоточном режиме

нет.

> Получение каждой ячейки, чтение всех ее свойств.
>

а это обязательно? неужели у каждой ячейки разные свойства? Может быть, можно читать диапазонами?


 
msgipss   (2007-03-20 19:46) [2]

>нет.
нельзя прочитать  в многопоточном режиме потому что сервер excel - sta?

>а это обязательно? неужели у каждой ячейки разные свойства? Может быть, >можно читать диапазонами?
к сожалению нужно читать каждую ячейку *(, или стоп, что значит читать диапазонами ? Имеется в виду что можно прочитать в какую нить структуру указанный range и потом его обрабатывать в памяти ? Если так можно сделать - подскажите пожалуйста как это сделать ?


 
umbra ©   (2007-03-21 17:20) [3]


> нельзя прочитать  в многопоточном режиме потому что сервер
> excel - sta?

да :) . Но можно насоздавать кучу копий файла и работать с каждой отдельно. Но это уже извращение, по-моему

> Имеется в виду что можно прочитать в какую нить структуру
> указанный range и потом его обрабатывать в памяти ?

Не слышал о таком.

А как к экселю доступ получаете? Раннее связывание должно быть быстрее.


 
msgipss   (2007-03-23 08:56) [4]

>А как к экселю доступ получаете? Раннее связывание должно быть быстрее.
использую компонент с палитры, используется таблица типов, а значит и раннее связывание - насколько я помню - да ?

мдаа, плохо конечно, что все так медленно *(, аналогичный скрипт написанный на vba (в том же документе либо в загруженной надстройке) работает в разы быстрее (раз в 6-7). Должно быть конечно медленнее, но не в разы же *((.
наверное придется по якутски делить логику на vba и delphi



Страницы: 1 вся ветка

Форум: "Corba";
Текущий архив: 2011.05.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
2-1298031723
Nickolay
2011-02-18 15:22
2011.05.29
Видимость свойств


2-1297969851
Criptonik
2011-02-17 22:10
2011.05.29
путь к директории с помощью opendialog


15-1297056537
Дмитрий С
2011-02-07 08:28
2011.05.29
"Теплый ламповый" hdmi


2-1298018206
Scott Storch
2011-02-18 11:36
2011.05.29
процедурные ссылки


1-1255882069
aha
2009-10-18 20:07
2011.05.29
Получаю данные ( неполный IEEE формат - 3 байта) , как проще





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский