Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Передача массива чисел из прораммы с строку листа Excel [D7, Win95/98, NT4, Win2k, WinXP]


SMT ©   (2004-09-09 17:26:00) 

Уважаемые мастера,

Подскажите, пожалуйста, как программно передать из открытой программы в строку также открытого листа Excel массив вещественных чисел?

Игорь Степанов


SMT   (2004-09-13 18:06:00) [1]

Уважаемый IXT,

Пожалуйста, пошлите, если возможно, исходники Вашей программы с использованием TExcelApplication на мой адрес:

igorstep@12044.spb.edu

Заранее благодарю.
С уважением, Игорь Степанов


IXT   (2004-09-10 10:07:00) [2]

Если надо скину "прогу" с использованием TExcelApplication
Работает с excel-ем как OLE COM.

Когдато делал какуюто фигню. Там все достаточто просто.


Palladin   (2004-09-10 00:57:00) [3]

вру безбожно :) текстовик нужно сформировать и слить на диск, при использовании DDE на диск сливать не нужно, соотвессно быстрей...


Palladin   (2004-09-10 00:50:00) [4]

1 не проще ли тогда просто файл с разделителями TAB сформировать?
эксель начал понимать xml только с 2003, и то, я не уверен, ибо не ставил и не смотрел, читал только анонсы к 2003... и я уверен что эксель гораздо быстрей обработает текстовик чем распарсит xml...
2 на практике проверить конечно можно, что быстрее OLE + DDE или таки OLE + вызов импорта из текстового файла... но что то в ломы... думаю примерно одинаково...


jack128   (2004-09-10 00:41:00) [5]

Palladin ©   (09.09.04 23:22) [7]
э-э-э.. Я думаю прямая запись в файл по сравнению с OLE имеет приемущества ;-)  Правда Cуслик(с) тут возмущался про фиговую документацию Excel'я по этому поводу..


Palladin   (2004-09-09 23:22:00) [6]

Пожалуйста поподробней о xml и гиперскорости.


YurikGL   (2004-09-09 23:19:00) [7]

Делается olevariant-й массив и однин раз делается paste

Если нужна гиперскорость - используй xml


Palladin   (2004-09-09 22:23:00) [8]

Массив это круто, но как ты собрался расположить его на листе?


SMT   (2004-09-09 21:16:00) [9]

А можно ли все делать автоматичски, т.е. программно, чтобы никаких мануальных движений типа "делаешь Paste" не делать?
В моем случае речь идет о переводе в Exel очень больших массивов данных, а поэтому 1000 раз делать Paste не представляется возможным.

Игорь Степанов


Dimka Maslov   (2004-09-09 17:52:00) [10]

uses Clipbrd;

procedure CopyArrayToClipboard(Data: array of Double; Row: Boolean = True);
// Row = True: запись данных в строку
// Row = False: в столбец
var
 Str, Delimiter: string;
 i, Lo, Hi: Integer;
 
begin
 if Row then Delimiter := #9 else Delimiter := #13#10;
 Lo := Low(Data);
 Hi := High(Data);
 for i := Lo to High do begin
  Str := Str + FloatToStr(Data[i]);
  if i < High then Str := Str + Delimiter;
 end;
 Clipboard.AsText := Str;
end;


Запускаешь прогу, открывает Ёxel и делаешь Paste.


MU   (2004-09-09 17:31:00) [11]

см.

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988622198&n=23

м.б. вместо CreateOleObject использовать GetActiveOleObject


Digitman   (2004-09-09 17:31:00) [12]

через клипборд, например


Наверх

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