Buenas tardes Colegas.
Estoy presentando la siguiente situación. Necesito exportar a Excel una BD y esto lo hago con el siguiente código:
Código Delphi
[-]
procedure TForm1.ExportaraexcelClick(Sender: TObject);
var
Libro : _WORKBOOK;
Hoja : _WORKSHEET;
i,colora:Integer;
FileImage : String;
begin
FileImage := ExtractFilePath(Application.ExeName)+'\Chart.bmp';
i:=0;
colora:=1;
Libro := Excel.Workbooks.Add(Null, 0);
Hoja := Libro.Sheets[1] as _WORKSHEET;
i:=i+1;
if colora=1 then
begin
Hoja.Range['A'+ inttostr(i),'B'+ inttostr(i)].Interior.Color :=$00F1E6DC ;
colora:= colora +1;
end
else
begin
Hoja.Range['A'+ inttostr(i),'B'+ inttostr(i)].Interior.ColorIndex :=2 ;
colora:= colora -1;
end;
Hoja.Cells.Item[i,1]:='Totales';
Hoja.Cells.Item[i,2]:='Actividades Realizadas';
with table do
begin
first;
while not EOF Do
begin
i:=i+1;
Hoja.Cells.Item[i,1]:=DBGrid1.Fields[0].AsString;
Hoja.Cells.Item[i,2]:=DBGrid1.Fields[1].AsString;
if colora=1 then
begin
Hoja.Range['A'+ inttostr(i),'B'+ inttostr(i)].Interior.Color :=$00F1E6DC ;
colora:= colora +1;
end
else
begin
Hoja.Range['A'+ inttostr(i),'B'+ inttostr(i)].Interior.ColorIndex :=2 ;
colora:= colora -1;
end;
Next;
end;end;
i:=i+1;
Hoja.Cells.Item[i,1]:= 'Total ';
Excel.Visible[0] := true;
ShowMessage('Exportado con Exito!');
end;
Ahora bien, para exportar una imagen a Excel lo hago de la siguiente manera:
Código Delphi
[-]
uses ComObj;
procedure TForm1.exportargraficoaexcelClick(Sender: TObject);
var excel1: OleVariant;
begin
excel1 := CreateOleObject('Excel.Application');
excel1.Workbooks.add.worksheets[1].shapes.addpicture(ExtractFilePath(Application.ExeName)+'\Chart.bmp', False, True, 6, 6, 666, 666);
excel1.visible := True
end;
pero por mas que he tratado me salen en libros diferentes y necesito que salga en uno solo.
Lo intenté de esta manera y aún así me salen en libros diferentes.
Código Delphi
[-]
procedure TForm1.ExportaraexcelClick(Sender: TObject);
var
Libro : _WORKBOOK;
Hoja : _WORKSHEET;
i,colora:Integer;
FileImage : String;
var excel1: OleVariant;
begin
FileImage := ExtractFilePath(Application.ExeName)+'\Chart.bmp';
i:=0;
colora:=1;
Libro := Excel.Workbooks.Add(Null, 0);
Hoja := Libro.Sheets[1] as _WORKSHEET;
i:=i+1;
if colora=1 then
begin
Hoja.Range['A'+ inttostr(i),'B'+ inttostr(i)].Interior.Color :=$00F1E6DC ;
colora:= colora +1;
end
else
begin
Hoja.Range['A'+ inttostr(i),'B'+ inttostr(i)].Interior.ColorIndex :=2 ;
colora:= colora -1;
end;
Hoja.Cells.Item[i,1]:='Totales';
Hoja.Cells.Item[i,2]:='Actividades Realizadas';
with table do
begin
first;
while not EOF Do
begin
i:=i+1;
Hoja.Cells.Item[i,1]:=DBGrid1.Fields[0].AsString;
Hoja.Cells.Item[i,2]:=DBGrid1.Fields[1].AsString;
if colora=1 then
begin
Hoja.Range['A'+ inttostr(i),'B'+ inttostr(i)].Interior.Color :=$00F1E6DC ;
colora:= colora +1;
end
else
begin
Hoja.Range['A'+ inttostr(i),'B'+ inttostr(i)].Interior.ColorIndex :=2 ;
colora:= colora -1;
end;
Next;
end;end;
i:=i+1;
Hoja.Cells.Item[i,1]:= 'Total ';
excel1 := GetActiveOleObject('Excel.Application');
excel1.Workbooks.add.worksheets[1].shapes.addpicture(ExtractFilePath(Application.ExeName)+'\Chart.bmp', False, True, 6, 6, 666, 666);
excel1.visible := True;
ShowMessage('Exportado con Exito!');
end;
Gracias de antemano.
Saludos