Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.10.20;
Скачать: CL | DM;

Вниз

Экспорт в Excel   Найти похожие ветки 

 
fd979   (2011-09-23 13:22) [0]

Меня интересует вопрос экспортиварования в Эксель. Вернее с его скоростью.
Если это делать с помощью OLE, то сам экспорт идет медленно, что достаточно очевидно (при определенных условиях).
Однако, мне интересно каким образом реализован экспорт например в таких программах как SQL Navigator. Там экспорт занимает очень непродолжительное время, а часто практически моментально.

   ActiveExcelSheet := ActiveWorkbook.ActiveSheet;
   Index := ActiveExcelSheet.Index;
   NoOfColumns := Tablebox.GetColumnCount;
   for I := 0 to NoOfColumns - 1 do
   begin
     FieldName := Tablebox.GetField(i).Name; //(это из экспортируемого приложения - Qlikview)
     Cell := ConvertExcelColNumberToLetter (i+1) + "1";
     SetRange(Index, Cell, FieldName);
   end;

   ActiveExcelSheet.Range["A1:"+Cell].Font.Bold := True;
   ActiveExcelSheet.Range["A2"].Select;
  ActiveExcelSheet.Paste;
  NoOfColumns := Tablebox.GetColumnCount;
  NoOfRows := Tablebox.GetNoOfRows;
  S := CalcRange(NoOfRows, NoOfColumns);
  Range := CalcRange(NoOfRows, NoOfColumns);
  SetWrapText(Index, Range, FALSE);
  ActiveExcelSheet.Range[Range].Borders.LineStyle := xlLineStyleNone;


Т.е. таким образом я приблизился к скорости экспортирования (копирование каждой ячейки идет неоправданно долго), однако, все же есть еще куда оптимизировать. Мне не ясно каким обзом в тех же SQL Navigator, Qlikview и т.д. реализован экспорт. На основе каких технологий?


 
Dimka Maslov ©   (2011-09-23 13:25) [1]

Можно, к примеру, запудзырить данные в буфер обмена, а ёкселя через оле заставить делать пастефромцлипбоард.


 
fd979   (2011-09-23 13:27) [2]

 ActiveExcelSheet.Paste;
ну я так и делаю.
Но даже с этим у меня медленее.


 
Медвежонок Пятачок ©   (2011-09-23 13:45) [3]

тупая двумерная таблица?

экспортируй в csv.
секунды не пройдет.


 
Cobalt ©   (2011-09-23 17:37) [4]

CopyPaste
Все что надо знать про Excel, Delphi и данные
Читаем:
http://delphikingdom.com/asp/viewitem.asp?catalogid=1270
http://delphikingdom.com/asp/viewitem.asp?catalogid=1273
http://delphikingdom.com/asp/viewitem.asp?catalogid=1274
http://delphikingdom.com/asp/viewitem.asp?catalogid=1275
http://delphikingdom.com/asp/viewitem.asp?catalogid=1277


 
Cobalt ©   (2011-09-23 17:39) [5]

Через VariantArray несколько десятков строк - почти мгновенно.


 
Dimka Maslov ©   (2011-09-23 22:33) [6]


> Но даже с этим у меня медленее.


Всё зависит от размера. Большой размер - большое время.


 
SQLEX ©   (2011-09-24 18:27) [7]

http://delphimaster.net/view/2-1315402765/
довольно быстро



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

Текущий архив: 2013.10.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.004 c
2-1359281365
SSS
2013-01-27 14:09
2013.10.20
Метод интерфейса


15-1368304204
Юрий
2013-05-12 00:30
2013.10.20
С днем рождения ! 12 мая 2013 воскресенье


15-1367856480
vrem
2013-05-06 20:08
2013.10.20
Хочу виндовс мастера!


15-1367502757
boriskb
2013-05-02 17:52
2013.10.20
Как делается телевидение


2-1359138247
вова
2013-01-25 22:24
2013.10.20
Как проверить существование объекта типа TBitmap