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

Вниз

Экспорт в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.002 c
10-1180359297
bronco79
2007-05-28 17:34
2013.10.20
Как в трехзвенке передать файл с сервера приложений?


2-1359616750
Xmen
2013-01-31 11:19
2013.10.20
DirWatcher установка


2-1359488655
Ghost del vonte
2013-01-29 23:44
2013.10.20
SMTP


15-1367958603
Юрий
2013-05-08 00:30
2013.10.20
С днем рождения ! 8 мая 2013 среда


1-1317222763
Ольга
2011-09-28 19:12
2013.10.20
Отображение в гриде текстов на иврите





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский