importar/Exportar dados do excel para StrigGrid
-ola pessoal, estou precisando de uma ajudinha simples... ja dei uma pesquisada pelo forum mais nao recebi resposta ainda.
preciso importar/Exportar dados do excel para StrigGrid e salvar as alterações no ´documento.xml´.
-vi diversos exemplos mais nao consegui achar um que pudesse se encaixar no meu problema.
desde ja, grato...
Juliano Gomes (JAPA)
preciso importar/Exportar dados do excel para StrigGrid e salvar as alterações no ´documento.xml´.
-vi diversos exemplos mais nao consegui achar um que pudesse se encaixar no meu problema.
desde ja, grato...
Juliano Gomes (JAPA)
Mahdak
Curtidas 0
Respostas
Lucas Silva
07/06/2004
Para exportar
para importar
uses ComObj; . . . procedure TForm1.Button1Click(Sender: TObject); var excel: variant; begin excel := CreateOleObject(´Excel.Application´); excel.Workbooks.add(1); excel.Cells.Select; excel.Selection.NumberFormat := ´@´; excel.cells[1,1] := StringGrid1.cells[1,1]; excel.columns.AutoFit; excel.cells[1,1].Select; excel.visible := true; end;
para importar
Uses ComObj procedure TForm1.Button1Click(Sender: TObject); var Excel : Variant; Coluna:Integer; P:string; txt: textfile; begin try AssignFile(txt, ´c:\Arquivo.txt´); if not FileExists(´c:\Arquivo.txt´) then Rewrite(txt,´c:\Arquivo.txt´); Append(txt); Excel := CreateOleObject(´Excel.Application´); Excel.WorkBooks.Open(´C:\Pasta1.xls´); Coluna:=1; P:=Excel.WorkBooks[1].Sheets[1].Cells[1,Coluna]; while ( P <> ´´) do begin WriteLn(txt, Excel.WorkBooks[1].Sheets[1].Cells[1,Coluna]); Coluna:=Coluna+1; P:=Excel.WorkBooks[1].Sheets[1].Cells[1,Coluna]; end finally Excel.WorkBooks.Close; CloseFile(txt); end; end;
GOSTEI 0
Mahdak
07/06/2004
- ok lucas, mais pelo que pude ver essa rotina importa de um arquivo texto e exporta para um arquivo xml...
- o que eu preciso na verdade é importar um arquivo xml para dentro do StringGrid do meu programa, e exportar o arquivo que está no StringGrid para um arquivo Xml. Tudo isso sem precisar estar abrindo o excel, tudo via meu aplicativo...
Grato pela atenção...
Abraços!
- o que eu preciso na verdade é importar um arquivo xml para dentro do StringGrid do meu programa, e exportar o arquivo que está no StringGrid para um arquivo Xml. Tudo isso sem precisar estar abrindo o excel, tudo via meu aplicativo...
Grato pela atenção...
Abraços!
GOSTEI 0
Mahdak
07/06/2004
sobe
-----
-----
GOSTEI 0
Mahdak
07/06/2004
ok lucas, mais pelo que pude ver essa rotina importa de um arquivo texto e exporta para um arquivo xml...
- o que eu preciso na verdade é importar um arquivo xml para dentro do StringGrid do meu programa, e exportar o arquivo que está no StringGrid para um arquivo Xml. Tudo isso sem precisar estar abrindo o excel, tudo via meu aplicativo...
Grato pela atenção...
Abraços!
- o que eu preciso na verdade é importar um arquivo xml para dentro do StringGrid do meu programa, e exportar o arquivo que está no StringGrid para um arquivo Xml. Tudo isso sem precisar estar abrindo o excel, tudo via meu aplicativo...
Grato pela atenção...
Abraços!
GOSTEI 0
Cabelo
07/06/2004
Caros Colegas..
Japa..
Pra vc conseguir fazer isso, vc pode fazer o seguinte, ao invés de vc importar para um arquivo, vc pode importar diretamente para seu string grid, colocando assim as linhas e colunas da planilha, igauis aos do string grid..
Outra coisa, alguém poderia me falar se existe uma limitação no número de colunas que possam ser importadas em uma mesma vari-avel , isto é, esta variável tem que tamanho??
sem mais..
Cabelo
Japa..
Pra vc conseguir fazer isso, vc pode fazer o seguinte, ao invés de vc importar para um arquivo, vc pode importar diretamente para seu string grid, colocando assim as linhas e colunas da planilha, igauis aos do string grid..
Outra coisa, alguém poderia me falar se existe uma limitação no número de colunas que possam ser importadas em uma mesma vari-avel , isto é, esta variável tem que tamanho??
sem mais..
Cabelo
GOSTEI 0
Mahdak
07/06/2004
Ok, mas é justamente isso que gostaria de saber como fazer, pois nao sei qual o código para importar para o meu StringGrid, e exportar para o Documento.xml...
é a minha primeira experiencia nesse nivel, e se algem puder me dar um exemploclaro disso, por favor, postem aqui...
Valleu...
é a minha primeira experiencia nesse nivel, e se algem puder me dar um exemploclaro disso, por favor, postem aqui...
Valleu...
GOSTEI 0
Cabelo
07/06/2004
procedure TForm1.Button1Click(Sender: TObject);
var v_caminho : string;
v_excel : OleVariant;
v_i, v_j : integer;
begin
if OpenDialog1.Execute then
begin
v_caminho := OpenDialog1.FileName;
v_excel := CreateOleObject(´Excel.Application´);
v_excel.Visible := False;
v_excel.Application.Workbooks.Open(v_caminho);
v_excel2 := CreateOleObject(´Excel.Application´);
v_excel2.Visible := False;
v_excel2.Application.Workbooks.Open(v_caminho);
v_j := 0;
while not (AnsiUpperCase(v_excel.cells.item[v_j + 1, 1].value) = ´´) do
begin
inc(v_j);
end;
for v_i := 0 to v_j - 1 do
begin
StringGrid1.Cells[1, v_i] :=
AnsiUpperCase(v_excel.ActiveSheet.Cells.Item[v_i + 1,1].Value);
StringGrid1.Cells[2, v_i] :=
AnsiUpperCase(v_excel.ActiveSheet.Cells.Item[v_i + 1,2].Value);
StringGrid1.Cells[3, v_i] :=
AnsiUpperCase(v_excel.ActiveSheet.Cells.Item[v_i + 1,3].Value);
//Fazer isso até o fim das colunas da planilha..
{se precisar percorrer suas colunas, coloque outra vatiável integer, e incremente ela de acordo com as suas colunas, depois disso, dentro deste for, vc faz um outro for passando a outra variável no lugar da coluna..}
end;
unassigned;
MessageDlg(´Importação realizada com sucesso!´, mtconfirmation, [mbOk], 0);
end;
end;
vc deve percorrer toda a sua planilha, para importar os dados..
espero ter ajudado..
sem mais..
Cabelo
var v_caminho : string;
v_excel : OleVariant;
v_i, v_j : integer;
begin
if OpenDialog1.Execute then
begin
v_caminho := OpenDialog1.FileName;
v_excel := CreateOleObject(´Excel.Application´);
v_excel.Visible := False;
v_excel.Application.Workbooks.Open(v_caminho);
v_excel2 := CreateOleObject(´Excel.Application´);
v_excel2.Visible := False;
v_excel2.Application.Workbooks.Open(v_caminho);
v_j := 0;
while not (AnsiUpperCase(v_excel.cells.item[v_j + 1, 1].value) = ´´) do
begin
inc(v_j);
end;
for v_i := 0 to v_j - 1 do
begin
StringGrid1.Cells[1, v_i] :=
AnsiUpperCase(v_excel.ActiveSheet.Cells.Item[v_i + 1,1].Value);
StringGrid1.Cells[2, v_i] :=
AnsiUpperCase(v_excel.ActiveSheet.Cells.Item[v_i + 1,2].Value);
StringGrid1.Cells[3, v_i] :=
AnsiUpperCase(v_excel.ActiveSheet.Cells.Item[v_i + 1,3].Value);
//Fazer isso até o fim das colunas da planilha..
{se precisar percorrer suas colunas, coloque outra vatiável integer, e incremente ela de acordo com as suas colunas, depois disso, dentro deste for, vc faz um outro for passando a outra variável no lugar da coluna..}
end;
unassigned;
MessageDlg(´Importação realizada com sucesso!´, mtconfirmation, [mbOk], 0);
end;
end;
vc deve percorrer toda a sua planilha, para importar os dados..
espero ter ajudado..
sem mais..
Cabelo
GOSTEI 0