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

Вниз

В Excel   Найти похожие ветки 

 
esa   (2003-01-22 14:29) [0]

Каким образом записать в Excel"евскую таблицу большой массив данных (обычными метОдами медленно пишется :). Хотелось бы побыстрее.


 
Alexander Vasjuk   (2003-01-22 15:39) [1]

Надо заполнить данными 2мерный вариантный массив и вставить его в лист.


 
Smithson   (2003-01-22 15:42) [2]

Я гонял большой об`ем через клипбоард. Получалось сильно щустрее.


 
Alx2   (2003-01-22 15:46) [3]

>esa © (22.01.03 14:29)
Шустрый и бесплатный компонент с исходниками для экспорта в excel из dataset см. на
http://www.stefancr.yucom.be


 
Yuri-7   (2003-01-22 15:59) [4]

1. Объяви переменную V: Variant;
2. Расчитай точное количество столбцов и строк и создай
V := VarArrayCreate([1, RCnt, 1, CCnt], varVariant);
3. Занеси данные в массив
4. Выполни процедуру
(R и C - адрес ячейки - "левый верхний угол", куда заносить,
ExcelApplication уже должно быть создано. ES в процедуре - это _WorkSheet, куда ты пишешь. Здесь использованы Delphi-йские сервера.)
//************************************************
procedure ex_putvalues(R,C: Integer; V: Variant);
var
I,J: Integer;
Rng: Range;
begin
I := VarArrayHighBound(V,1)-VarArrayLowBound(V,1);
J := VarArrayHighBound(V,2)-VarArrayLowBound(V,2);
Rng := ES.Get_Cells;
Rng := Rng.Range_[Rng.Item[R,C],Rng.Item[R+I,C+J]];
Rng.Value := V;
end;


 
Palladin   (2003-01-22 17:01) [5]

если просто текст то пойдет и так
заносишь усе в buffer
разделитель между колонками #9 (TAB) между строками #10 (LF)

var
xlDDE:TDDEClientConv;
buffer:string;
xlApp:OleVariant;
Adr1,Adr2:string;
....
xlDDE:=TDDEClientConv.Create(nil);
lDDE.SetLink("EXCEL", m_sheetname);
xlDDE.PokeData(OLEVariant(xlApp.Range[Adr1,Adr2]).Address[ReferenceStyle:=xlR1C1], pchar(buffer));
xlDDE.free;
....

очень быстро
Adr1
Adr2 описывают верхний левый и нижний правый угол прямоугольной области в которую вставляются данные
xlApp созданый как CreateOleObject("Excel.Application");



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

Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
1-96817
Alexsys
2003-01-20 18:52
2003.01.30
Тащим файл на иконку - итог - приложение с открытым файлом?


8-96888
ShurikNV
2002-10-16 10:21
2003.01.30
Delphi&Flash


3-96561
yaric
2003-01-10 17:55
2003.01.30
Проблема с IBQuery и DLL


14-96988
Wizard
2003-01-11 13:28
2003.01.30
Мастер


7-97068
Оля
2002-11-18 12:58
2003.01.30
Как погасить экран?





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