/
Importação informações de planilhas (Excel)

Importação informações de planilhas (Excel)

Introdução

Esta documentação servirá para as demandas que necessitam que o usuário importe informações de uma planilha usando os recursos do VsScripter, sendo específico para a aplicação do Office Excel.

 

Requisitos mínimos

  • Aplicação do Office Excel instalado.

 

Exemplo de uso do recurso no VsScripter

  1. Crie uma tela no VsScripter

  2. Adicione um botão (TButton) e aponte a propriedade do alinhamento para o topo (Alignment = altop)

  3. Adicione um painel (TPanel) e aponte a propriedade do alinhamento para toda a tela (Aligment = alClient)

 

  1. No código adicione os seguintes uses:

uses Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, SysUtils, Graphics, Grids, System;

 

  1. Crie um evento de clique para o botão e adicione o seguinte código:

procedure Button1Click(Sender: TObject); VAR vOpnDlg: TOpenDialog; vStrGrid: TStringGrid; begin Inherited(sender, 'OnClick'); vOpnDlg := TOpenDialog.Create(nil); vStrGrid := TStringGrid.Create(Panel1); vStrGrid.SetParentComponent(Panel1); vStrGrid.Align := alClient; if vOpnDlg.Execute(Handle) then XlsToStringGrid(vStrGrid, vOpnDlg.FileName); end;

 

  1. Em seguida adicione uma nova function chamada: XlsToStringGrid

Function XlsToStringGrid(xStringGrid: TStringGrid; xFileXLS: string): Boolean; const xlCellTypeLastCell = $0000000B; var XLSAplicacao, AbaXLS: OLEVariant; RangeMatrix: Variant; x, y, k, r: Integer; begin Result := False; // Cria Excel- OLE Object XLSAplicacao := CreateOleObject('Excel.Application'); try //Esconde Excel XLSAplicacao.Visible := False; // Abre o Workbook XLSAplicacao.Workbooks.Open(xFileXLS); {Selecione aqui a aba que você deseja abrir primeiro - 1,2,3,4....} XLSAplicacao.WorkSheets[1].Activate; {Selecione aqui aba que você deseja ativar - começando sempre no 1 (1,2,3,4)} AbaXLS := XLSAplicacao.Workbooks[ExtractFileName(xFileXLS)].WorkSheets[1]; AbaXLS.Cells.SpecialCells(xlCellTypeLastCell, null).Activate; // Pegar o número da última linha x := XLSAplicacao.ActiveCell.Row; // Pegar o número da última coluna y := XLSAplicacao.ActiveCell.Column; // Seta xStringGrid linha e coluna XStringGrid.RowCount := x; XStringGrid.ColCount := y; // Associaca a variant WorkSheet com a variant do Delphi RangeMatrix := XLSAplicacao.Range['A1', XLSAplicacao.Cells.Item[x, y]].Value; // Cria o loop para listar os registros no TStringGrid k := 1; repeat for r := 1 to y do XStringGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[k, r]; Inc(k); until k > x; RangeMatrix := Unassigned; finally // Fecha o Microsoft Excel XLSAplicacao.Free; AbaXLS.Free; end; end;

 

Após implementada a solução, compile a mesma e então clique no botão da tela e importe uma planilha dos formatos XLS e XLSX e o processo de importação será iniciado.

 

Nesse processo poderá ser acrescentada uma barra de progresso e outros recursos como importar em um TVsClientDataSet conforme as colunas do StringGrid e entre outras possibilidades que poderão surgir conforme as necessidades.

 

Related content

Validação utilizando um formulário personalizado
Validação utilizando um formulário personalizado
Read with this
Índices atualizados no Servidor
Índices atualizados no Servidor
More like this
Acessando as Properties de uma Coluna de grid
Acessando as Properties de uma Coluna de grid
Read with this
Funcionalidades do VsScripter
Funcionalidades do VsScripter
Read with this
Documentação de um projeto VsScripter
Documentação de um projeto VsScripter
Read with this