Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
ВнизЗапись значения в ячейку 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c