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]