![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Жуткие тормоза при отправке данных в Excel [D7, Win2k]
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 := олей-вариантный-массив_ТОЙ_же_размерности_что_и_ХХХХ