Fórum Importar dados Planilha Excel #239169

23/06/2004

0

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


Rbfonseca

Rbfonseca

Responder

Post mais votado

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]


Powerlog Tecnologia

Powerlog Tecnologia
Responder

Gostei + 1

Mais Posts

23/06/2004

Oberdan

...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 :!:


Responder

Gostei + 0

02/04/2009

Andradedenilson

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

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.


Responder

Gostei + 0

18/05/2009

Sidimarsilva

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?


Responder

Gostei + 0

18/05/2009

Sidimarsilva

Desculpa problema resolvido eu estava usando TDbGrid ao inves do string...


Responder

Gostei + 0

20/05/2009

Powerlog Tecnologia

Só pra complementar; tem outro tópico sobre o INSERTEX:

[url]http://forum.devmedia.com.br/viewtopic.php?t=100577[/url]


Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar