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


scorpio   (2005-05-26 11:03:00) [21]

непонял, это как ??


Bel   (2005-05-26 10:55:00) [22]

Формируй один вариантный массив и отправляй его в Excel.


Scorpio   (2005-05-26 10:45:00) [23]

XLS := CreateOleObject('Excel.Application');
app := XLS.Workbooks.Open(pat1+'\rasl.xls');

       for i := 1 to 96 do
          begin
//                for j := 1 to 10 do
                  begin
                       if i <= 51 then
//                          if zar[i,j] <> 0 then
                           begin
                                if zar[i,1] <> 0 then
                                  xls.worksheets['????1'].Cells[i+5,2].Value:=zar[i,1];
                                if zar[i,2] <> 0 then
                                  xls.worksheets['????1'].Cells[i+5,3].Value:=zar[i,2];
                                if zar[i,3] <> 0 then
                                  xls.worksheets['????1'].Cells[i+5,4].Value:=zar[i,3];
                                if zar[i,4] <> 0 then
                                  xls.worksheets['????1'].Cells[i+5,5].Value:=zar[i,4];
                                if zar[i,5] <> 0 then
                                  xls.worksheets['????1'].Cells[i+5,6].Value:=zar[i,5];
                                if zar[i,6] <> 0 then
                                  xls.worksheets['????1'].Cells[i+5,7].Value:=zar[i,6];
                                if zar[i,7] <> 0 then
                                  xls.worksheets['????1'].Cells[i+5,8].Value:=zar[i,7];
                                if zar[i,8] <> 0 then
                                  xls.worksheets['????1'].Cells[i+5,9].Value:=zar[i,8];
                                if zar[i,9] <> 0 then
                                  xls.worksheets['????1'].Cells[i+5,10].Value:=zar[i,9];
                                if (zar[i,8] <> 0) and (zar[i,9] <> 0) then
                                  xls.worksheets['????1'].Cells[i+5,11].Value:=(zar[i,8] + zar[i,9]) / zar[i,1];
                           end;

Вначале пробовал полностью в цикле, потом построчно, все равно тормозит.


Digitman   (2005-05-26 10:37:00) [24]


> произвожу обработку базы


напильником ?


NightStranger   (2005-05-26 10:36:00) [25]

Каким образом ты отправляешь данные?


Страницы:   1 2

Наверх

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