Adriano,

O código funcinou no BDS2006 pra DelphiWin32. Todavia, preciso de uma
variante desse código para o Delphi.NET. Eu até já construi o código que
segue:


type
TExportarGrid = class helper for TStringGrid
procedure ExportarGridExcel(Arquivo :String);
end;
implementation
uses
Dialogs, uFuncoes;
{ TExportarGrid }
procedure TExportarGrid.ExportarGridExcel(Arquivo: String);
var Linha, Coluna :integer;
Arq :TextFile;
ExcelApp :Excel._Application;
ExcelWorkBook :Excel._Workbook;
ExcelWorkSheet :Excel._Worksheet;
begin
if Self.RowCount > 1 then
begin
try
try
//Remove o arquivo, caso ele exista
//AssignFile(Arq, Arquivo);
//Erase(Arq);
ExcelApp := Excel.ApplicationClass.Create;
//ExcelApp.Visible := True;
ExcelWorkBook :=
Excel._Workbook(ExcelApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet));
ExcelWorkSheet :=
Excel._Worksheet(ExcelWorkBook.Sheets[TObject(1)]);
ExcelWorkSheet.Activate;
Linha := 0;
for Coluna := 0 to Self.ColCount - 1 do
begin
ExcelWorkSheet.Cells[TObject(Linha + 1), TObject(Coluna +
1)] := removerQuebraLinha(Self.Cells[Coluna, Linha]);
end;
Linha := 1;
while Linha <= Self.RowCount - 1 do
begin
for Coluna:=0 to Self.ColCount - 1 do
begin
ExcelWorkSheet.Cells[TObject(Linha + 1), TObject(Coluna +
1)] := removerQuebraLinha(Self.Cells[Coluna, Linha]);
end;
Linha := Linha + 1;
end;
ExcelWorkBook.SaveAs(arquivo,
Excel.XlFileFormat.xlWorkbookNormal, nil, nil,
TObject(false), TObject(false),
Excel.XlSaveAsAccessMode.xlNoChange,
Excel.XlSaveConflictResolution.xlLocalSessionChanges,
nil, nil, nil,
nil);
except
end;
finally
ExcelWorkBook.Close(TObject(false), nil, nil);
ExcelApp.Quit;
FreeAndNil(ExcelApp);
FreeAndNil(ExcelWorkBook);
FreeAndNil(ExcelWorkSheet);
end;
end
else
ShowMessage('A Grid '+Self.Name+'tem que possuir valor para a
migração.');
end;

Porém, estou tendo o seguinte problema: esse código está funcionando
corretamente em algumas máquinas. Em outras, não. Nessas máquinas, ocorre o
seguinte erro:
"Falha na recuperação de factory de classes COM do componente com
CLSID {00024500-0000-0000-C000-000000000046} devido ao seguinte erro:
80070005."

Será que você poderia me dar uma ajuda?!!??!

Grato desde já,

Wellington
Analista de Sistemas






2008/11/5 Adriano Santos (Y!) <[EMAIL PROTECTED]>

>   Opa,
>
> Perdão, não tenho postado meu blog na assinatura.
> www.delphitodelphi.blogspot.com
>
> []s
>
> --
> Adriano Santos
> www.delphitodelphi.blogspot.com
> www.adrianosantos.pro.br
> www.devmedia.com.br
> www.dug-sp.com
>
> Wellington Passos respondeu:
> >
> > Desculpe minha ignorância mas, qual é o endereço?
> >
> > www.dug-sp.com ?
> >
> > Grato,
> >
> > Wellington
> >
>
>  
>



-- 
Wellington Passos de Paula
[EMAIL PROTECTED]


[As partes desta mensagem que não continham texto foram removidas]

Responder a