Eu estou tentando agora, exportar dados de um StringGrid para o Excel, eu fiz um teste e deu certo, mas na hora de complementar o código deu um erro "OLE error 800A03EC." e ele não executa nada.
O que pode ser? E como resolver?
Aqui esté o código:
procedure TForm1.Button1Click(Sender: TObject);
var
c,ct,cl: integer;
t,tx: String;
begin
MSExcel:= CreateOleObject('Excel.Application');
MSExcel.WorkBooks.Add(1);
MSExcel.Caption:= Edit1.Text;
MSExcel.Visible:= false;
c:= AGrid.RowCount;
cl:= 1;
ct:= 0;
while ct <> c do
begin
Edit1.text:= AGrid.Rows[ct].DelimitedText;
tx:= Edit1.Text;
t:= copy(Edit1.Text,1,Pos(AGrid.Rows[ct].Delimiter,Edit1.Text)-1);
Edit2.Text:= t;
delete(tx,1,Pos(AGrid.Rows[ct].Delimiter,tx)+1);
if tx = '' then
begin
cl:= cl + 1;
end;
MSExcel.Cells[cl,ct]:= t;
ct:= ct + 1;
end;
MSExcel.WorkBooks.Add(1);
MSExcel.Columns.Autofit;
SaveDialog1.Execute;
MSExcel.WorkBooks[1].SaveAs(SaveDialog1.FileName);
MSExcel.Quit;
end;
Pergunta
Victor_DF
Oi pessoal...
Eu estou tentando agora, exportar dados de um StringGrid para o Excel, eu fiz um teste e deu certo, mas na hora de complementar o código deu um erro "OLE error 800A03EC." e ele não executa nada.
O que pode ser? E como resolver?
Aqui esté o código:
procedure TForm1.Button1Click(Sender: TObject); var c,ct,cl: integer; t,tx: String; begin MSExcel:= CreateOleObject('Excel.Application'); MSExcel.WorkBooks.Add(1); MSExcel.Caption:= Edit1.Text; MSExcel.Visible:= false; c:= AGrid.RowCount; cl:= 1; ct:= 0; while ct <> c do begin Edit1.text:= AGrid.Rows[ct].DelimitedText; tx:= Edit1.Text; t:= copy(Edit1.Text,1,Pos(AGrid.Rows[ct].Delimiter,Edit1.Text)-1); Edit2.Text:= t; delete(tx,1,Pos(AGrid.Rows[ct].Delimiter,tx)+1); if tx = '' then begin cl:= cl + 1; end; MSExcel.Cells[cl,ct]:= t; ct:= ct + 1; end; MSExcel.WorkBooks.Add(1); MSExcel.Columns.Autofit; SaveDialog1.Execute; MSExcel.WorkBooks[1].SaveAs(SaveDialog1.FileName); MSExcel.Quit; end;Obrigado
Victor
Editado por Victor_DFLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.