Importar dados Planilha Excel
Caros amigos
Um cliente tem uma planilha excel com muitos dados, onde são controlados custos com gastos de combustíveis. Preciso importar os dados da planilha para o sistema que foi desenvolvido em delphi 7 com firebird.
Alguém pode me dar uma ajuda, ou tem alguma rotina já pronta?
Aguardo Resposta
Raphael
Um cliente tem uma planilha excel com muitos dados, onde são controlados custos com gastos de combustíveis. Preciso importar os dados da planilha para o sistema que foi desenvolvido em delphi 7 com firebird.
Alguém pode me dar uma ajuda, ou tem alguma rotina já pronta?
Aguardo Resposta
Raphael
Rbfonseca
Curtidas 0
Melhor post
Powerlog Tecnologia
18/05/2009
Se não for uma importação reccorente, eu usaria o [b:a2e1a85713]INSERTEX[/b:a2e1a85713] do IbExpert
[url]http://ibexpert.net/ibe/index.php?n=Doc.ScriptExecutive#Insertex[/url]
[url]http://ibexpert.net/ibe/index.php?n=Doc.ScriptExecutive#Insertex[/url]
GOSTEI 1
Mais Respostas
Oberdan
23/06/2004
...mas no próprio Excel você tem a opção em Salvar o Documento como Tabela DBase, aí uma vez os dados salvos como uma tabela, fica mais fácil trabalhar, você mesmo pode criar a tabela receptora em Firebird, e usando o componente BatchMove do Delphi jogar de uma pra outra... não precisa nem criar aplicação, pois é muito fácil usar o BatchMove.
Espero ter ajudado.
Oberdan :!:
Espero ter ajudado.
Oberdan :!:
GOSTEI 0
Andradedenilson
23/06/2004
Uma forma de fazer e importação pode ser crinado uma função que carega as informações da planilha em um grid ai e so manipular a gravação
declare nas Uses
ComObj
pra chamar a função vc pode utilizar um opendialog
espero ter ajudado.
declare nas Uses
ComObj
function XlsToStringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean; const xlCellTypeLastCell = $0000000B; var XLApp, Sheet: OLEVariant; RangeMatrix: Variant; x, y, k, r: Integer; begin Result := False; //Cria Excel- OLE Object XLApp := CreateOleObject(´Excel.Application´); try //Esconde Excel XLApp.Visible := False; //Abre o Workbook XLApp.Workbooks.Open(AXLSFile); Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1]; Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; //Pegar o número da última linha x := XLApp.ActiveCell.Row; //Pegar o número da última coluna y := XLApp.ActiveCell.Column; //Seta Stringgrid linha e coluna AGrid.RowCount := x; AGrid.ColCount := y; //Associaca a variant WorkSheet com a variant do Delphi RangeMatrix := XLApp.Range[´A1´, XLApp.Cells.Item[X, Y]].Value; //Cria o loop para listar os registros no TStringGrid k := 1; repeat for r := 1 to y do AGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[K, R]; Inc(k, 1); until k > x; RangeMatrix := Unassigned; finally //Fecha o Excel if not VarIsEmpty(XLApp) then begin XLApp.Quit; XLAPP := Unassigned; Sheet := Unassigned; Result := True; end; end;
pra chamar a função vc pode utilizar um opendialog
if OpenDialog1.Execute then XlsToStringGrid(zGrid1,OpenDialog1.FileName);
espero ter ajudado.
GOSTEI 0
Sidimarsilva
23/06/2004
Bom dia andradedenilson,
Eu estou tentando usar sua funçao mas esta dando erro:
Incompatible types: ´TStringGrud´ and ´TDBGrid´
vc saberia me dizer o motivo?
Eu estou tentando usar sua funçao mas esta dando erro:
Incompatible types: ´TStringGrud´ and ´TDBGrid´
vc saberia me dizer o motivo?
GOSTEI 0
Sidimarsilva
23/06/2004
Desculpa problema resolvido eu estava usando TDbGrid ao inves do string...
GOSTEI 0
Powerlog Tecnologia
23/06/2004
Só pra complementar; tem outro tópico sobre o INSERTEX:
[url]http://forum.devmedia.com.br/viewtopic.php?t=100577[/url]
[url]http://forum.devmedia.com.br/viewtopic.php?t=100577[/url]
GOSTEI 1