![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто найдёт ошибку(ки) в этом коде? [D6, Win95/98, WinXP]
^Sanya © (2002-12-04 00:00:00)На форме имеется компонент ExcelApplication1 и StringGrid1.
Цель примера - передать данные из StringGrid в Excel.
Итог - при первом запуске всё нормально, при последующих - вижу только шапку Excel и ничего более :(
Прим.: у меня ExcelXP, но в Excel2000 та же басня :(
procedure TForm1.Button1Click(Sender: TObject);
var
RangeE: excel2000.Range;
i, j:byte;
begin
ExcelApplication1.Visible[0] := True;
ExcelApplication1.Workbooks.Add(null, 0);
for i := 0 to StringGrid1.RowCount-1 do
begin
RangeE := ExcelApplication1.Range["A" + IntToStr(i+1), "A" + IntToStr(i+1)];
for j := 0 to StringGrid1.ColCount-1 do
begin
RangeE.Value := StringGrid1.Cells[i, 0];
RangeE := RangeE.Next;
end;
end;
end;
Antonius (2002-12-04 21:53:00) [1]а не позднее ли это связывание? Если так - будет работать медленно. Хотя я не спец в коме
^Sanya (2002-12-04 20:58:00) [2]сабж
^Sanya (2002-12-04 18:55:00) [3]А что же делать с моим кодом??? (см. сабж)
LongIsland (2002-12-04 18:11:00) [4]
procedure TForm1.Button1Click(Sender: TObject);
var
WorkSheet : Variant;
regData: TRegistry;
i,j:integer ;
Excel : Variant;
begin
{---------конектимся к ексель файлу---------------------}
if OpenDialog1.Execute then
begin
Excel := "Excel.Application";
regData := TRegistry.Create;
regData.RootKey := HKEY_CLASSES_ROOT;
try
if regData.OpenKey("\Excel.Application\CurVer", False) then
begin
Excel:= regData.ReadString("");
regData.CloseKey;
end
finally
regData.Free;
end;
Excel := CreateOleObject(Excel);
Excel.Visible := false;
Excel.Workbooks.Open( OpenDialog1.FileName );
WorkSheet := Excel.Workbooks[1].WorkSheets[1];
{--экспортируем данные---------------------------}
for i:=1 to StringGrid1.ColCount do
for j:=1 to StringGrid1.RowCount do
WorkSheet.Cells[i,j]:=StringGrid1.Cells[j,i];
Excel.Visible := true;
end;
end;
Не помню кто, но кто-то выкладывал здесь такой код. Правда не через Server"ы, но работает:-)
^Sanya (2002-12-04 17:47:00) [5]пожалуйста!!!
^Sanya (2002-12-04 00:41:00) [6]А ещё, пуля в том, что тот же баг есть у Марко Кенту в "Delphi6 для профессионалов"
:)
Или баг у меня в голове???