Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Жуткие тормоза при отправке данных в Excel [D7, Win2k]


Страницы:   1 2

Scorpio ©   (2005-05-26 10:34:00) 

Добрй день мастера, подскажите, произвожу обработку базы, данные кидаю в массив, потом мне этот массив нужно отправить в Excel, но проблема в том что он 2 листа отправляет 18 минут, это можно как то ускорить ???
  массив [96,10]
  Офис XP


programania   (2005-05-26 20:20:00) [1]

Вот еще программа есть:
http://programania.com/vtkexp.zip  157kb
подключается просто в uses,
не использует Excel и потому быстро, может рамки шрифты цвета и т.д.
прилагаются исходники, пример со всеми возможностями и русское описание,
хотя сам я пишу в Excel и Word через html  что тоже быстро.


Суслик   (2005-05-26 17:29:00) [2]

Хочется поспорить, доказав примером конкретного файла excel, который точно не сделаешь за доли секунды через ole. Но беда, что они все представляют коммерческую тайну...

Так что у меня аргументов нет (((


evvcom   (2005-05-26 17:16:00) [3]


> С форматированием!!!?

Если форматирование для столбца одинаково, то делается это за доли секунды в Excel.


Суслик   (2005-05-26 16:04:00) [4]


>  [21] френк   (26.05.05 16:02)

не поделюсь, не потому, что жаль, а потому, что это не компонент, а класс (вернее иерархия классов), который глубоко интегрирован в большущий проект.

Я занимаюсь сейчас выделением этого инструемента в компонент, но когда доделаю не знаю :(


френк   (2005-05-26 16:02:00) [5]

может поделишься компонентиком? за огромное спасибо и соблюдение всех твоих копилефтов =)


Суслик   (2005-05-26 15:59:00) [6]


> [18] evvcom ©   (26.05.05 15:49)

На самом деле не сравнивал. Но разница еще и в том, что при большой заполненности листа на несильных (памяти, например маловато) компах становится трудно работать: excel пытается все сделать в памяти. Я же сразу кидаю на диск, причем последовательно. При этом у excel есть однозначная заточенность на числа. Он умеет хорошо и оптимально хранить числа, со стоками дело хуже. Поэтому если на листе в основном строки, то тормозит сильнее.


Суслик   (2005-05-26 15:56:00) [7]


>  [18] evvcom ©   (26.05.05 15:49)

С форматированием!!!?


evvcom   (2005-05-26 15:49:00) [8]


> 10000 сток и 10 столбцов с форматированием

а через OLE-вариантные массивы в Excel не пробовал кидать те же данные для сравнения? Я думаю не медленнее получится, а если и медленне, то не намного. Имхо.


Суслик   (2005-05-26 14:54:00) [9]


>  [16] evvcom ©   (26.05.05 14:50)

мне нужно выкачивать В excel.
ИЗ excel мне данные брать не нужно.

Мне тоже не нравится с бинарниками возиться, благо и сложно это. Есно я сам не дебужил формал (не умею) - я пользоваться описанием из openoffice. Но все равно месяц работы это заняло. Зато теперь проблем не знаю: 10000 сток и 10 столбцов с форматированием - за 20 секунд.


evvcom   (2005-05-26 14:50:00) [10]


> Суслик ©   (26.05.05 14:24) [15]

А что Excel может использоваться только в одну сторону?

Хотя, конечно, выход есть всегда. Самое главное, что мне не нравится в таких компонентах - это вероятность выхода новых версий (с поддержкой новых версий как Excel, так и Delphi). Имхо.


Суслик   (2005-05-26 14:24:00) [11]


>  [11] evvcom ©   (26.05.05 12:01)

это ты зря
сейчас текущая версия формата biff8x.
При этом существующий excel радостно читает все предыдущие форматы, начиная с biff2.

Так что обратная совместимость, нас спасет.

Я уже год сижу на своем (сам написал) экспорте в biff8. Пока проблем ни на одном из офисов, который понимает biff8 (2000, xp, 2003, также вроде 97) я не видел.

С какой стати новый офис должен быть несовместим со старым? Они (ms) идиоты что ли?


evvcom   (2005-05-26 13:50:00) [12]

в Delphi 7 его нет и слава богу


Amoeba   (2005-05-26 13:50:00) [13]


> scorpio ©   (26.05.05 12:22) [12]
> а этот компонент, его отдельно надо выискивать, или он есть
> в Delphi 7 ??

Разумеется, отдельно.


scorpio   (2005-05-26 12:22:00) [14]

а этот компонент, его отдельно надо выискивать, или он есть в Delphi 7 ??


evvcom   (2005-05-26 12:01:00) [15]


> А еще проще взять компонент который знает формат файла Excel

И после очередного выхода новой версии Excel программа работать перестанет. Поздравляю вас, товарищи!


Erik1   (2005-05-26 11:58:00) [16]

А еще проще взять компонент который знает формат файла Excel. Тогда даже при отсутствии excel все будет работать.


dmitry501   (2005-05-26 11:13:00) [17]

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


HSolo   (2005-05-26 11:11:00) [18]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=313


Amoeba   (2005-05-26 11:06:00) [19]

Ищи на http://www.delphikingdom.comцикл статей "По волнам интеграции". Найдешь там массу полезного.


Digitman   (2005-05-26 11:05:00) [20]


> Жуткие тормоза при отправке данных в Excel


эти "тормоза" у тебя включаются при каждом обращении вида

xls.worksheets[..].Cells[..].Value :=

и фактор это совершенно объективный.

но если ты сформируешь вариантный массив, описывающий разом ВСЕ значения ячеек в нужном диапазоне, то "тормоза" вместо i x j раз включатся у тебя один-единственный раз :

xls.worksheets[..].Range[XXXX].Value := олей-вариантный-массив_ТОЙ_же_размерности_что_и_ХХХХ


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо