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

Вниз

Запись значения в ячейку Excel   Найти похожие ветки 

 
Serval   (2003-08-20 07:49) [0]

День добрый. Есть непонятная мне проблема. Кладу на форму TExcelApplication, открываю Excel и пытаюсь изменить данные.

xls: TExcelApplication;
aa,bb:OleVariant;
<...>
aa:=xls.range["A1","A1"].formula; // aa=31,5
bb:=aa*0,2; // bb=6,3
xls.range["A1","A1"].formula:=bb;

В таком виде при попытке записать данные в Excel выдается ошибка "Invalid variant type conversion". А если сделать так:

xls.range["A1","A1"].formula:=6,3;

то всё работает и данные в ячейке сохраняются как число. У меня целый столбец значений, который надо перелопатить, а из переменной данные не записываются в ячейку. Посоветуйте, что мне сделать...
Заранее thanx.


 
3APA3A ©   (2003-08-20 09:46) [1]

Я бы сделал так

aa:=xls.Range[zls.Cells[1,1],xls.Cells[1,1]].Value;

и наоборот, соответственно
xls.Range[zls.Cells[1,1],xls.Cells[1,1]].Value:=bb;


 
Олег ©   (2003-08-20 10:32) [2]

... обычно не кладу на форму TExcelApplication... поступаю проще:
procedure ...;
var
Excel: Variant;
i,j : integer;
begin
Excel := CreateOleObject("Excel.Application");
Excel.Visible:=True;
Excel.WorkBooks.Add;
// Так, к примеру, переношу заглавия столбцов
for i := 0 to DBGridEh1.Columns.Count-1 do
Excel.ActiveSheet.Cells[i,3].FormulaR1C1 :=
DBGridEh1.Columns[i].Title.Caption;

end;
С подобным успехом переносятся данные из Грида Таблици или Qyery... Организовывается цикл по количеству записей и количеству полей и вперед:
...
Excel.ActiveSheet.Cells[i,j].FormulaR1C1 :=
Query1.Fields[i].AsString;
...

Удачи!


 
Олег ©   (2003-08-20 10:37) [3]

... ну само собой ... к модулям добавляешь ComObj

uses
Windows... ComObj;

Удачи!



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
3-10630
Alex Bredin
2003-08-13 10:51
2003.09.04
Синхронизация БД через Интернет


9-10538
AndrewK
2002-09-26 12:47
2003.09.04
Как проверить коллизии?


1-10668
Sirus
2003-08-25 11:33
2003.09.04
Нужно событие типа AfterFormShow???


1-10765
olecorp
2003-08-24 13:50
2003.09.04
Как послать приложению русские буквы ?


3-10650
Ден
2003-08-12 13:22
2003.09.04
Как получить доступ к записям сетки DBgrid?