Você está na página 1de 4

IMPORTAR ARQUIVO EXCEL

/* DEFINICAO DE UMA TABELA TEMPORARIA*/

DEFINE TEMP-TABLE tt_dados

FIELD cod_cliente AS CHAR FORMAT "x(20)" LABEL "Codigo" COLUMN-LABEL "Codigo"

FIELD nome_cliente AS CHAR FORMAT "x(50)" LABEL "Nome" COLUMN-LABEL "Nome"

FIELD cep AS INT FORMAT ">>>>>>>>9" LABEL "Cep" COLUMN-LABEL "Cep"

FIELD nr-nota-fis LIKE nota-fiscal.nr-nota-fis

INDEX idx_codigo cod_cliente.

/* ZERA/LIMPA TABELA TEMPORARIA */

EMPTY TEMP-TABLE tt_dados.

FOR EACH nota-fiscal WHERE dt-emis-nota <= 01/30/2010 NO-LOCK USE-INDEX nfftrm-20,

EACH emitente WHERE emitente.cod-emitente = nota-fiscal.cod-emitente NO-LOCK USE-INDEX codigo.

/* INSERINDO INFORMACOES DO FOR EACH NA TABELA TEMPORARIA */

CREATE tt_dados.

ASSIGN tt_dados.cod_cliente = string(emitente.cod-emitente)

tt_dados.nome_Cliente = emitente.nome-emit

tt_dados.cep = int(emitente.cep)

tt_dados.nr-nota-fis = nota-fiscal.nr-nota-fis.

END.

/* LISTANDO INFORMACOES DA TABELA TEMPORARIA */

FOR EACH tt_dados.

DISP tt_dados WITH WIDTH 300.

END.

/* CRIANDO COPIA DA TABELA COM ESTRUTURA E DADOS PARA COMPARACOES OU OUTRAS TAREFAS */

DEF BUFFER bf-emitente FOR emitente.

IMPORTAR ARQUIVO EXCEL


/* CRIA VARIAVEIS PARA INSTANCIAR EXCEL */

DEF VAR chExcelApplication AS COM-HANDLE NO-UNDO.

DEF VAR chWorkbook AS COM-HANDLE NO-UNDO.

DEF VAR chWorksheet AS COM-HANDLE NO-UNDO.

/* CRIA VARIAVEIS PARA CONTROLE DE LINHAS E ARQUIVOL */

DEF VAR i-linha AS INT NO-UNDO.

DEF VAR NomeArquivo AS CHAR FORMAT "X(200)" NO-UNDO.


/* CRIA TABELA TEMPORARIA PARA ARMAZENAR DADOS IMPORTADOS */

DEF TEMP-TABLE tt-dados

FIELD nome AS CHAR FORMAT "x(50)"

FIELD idade AS CHAR FORMAT "x(5)"

FIELD cidade AS CHAR FORMAT "x(30)".

/* ESVAZIA TEMP-TABLE APAGANDO TODOS OS DADOS */

EMPTY TEMP-TABLE tt-dados.

/* ATRIBUI CAMINHO DO ARQUIVO A SER IMPORTADO */

ASSIGN nomeArquivo = "c:\temp\ImportaExcel.xlsx".

/* ATRIBUI APLICACAO EXCEL NA VARIAVEL CASO ACONTECA ALGUM ERRO SAI DO PROGRAMA */

CREATE "Excel.Application" chExcelApplication NO-ERROR.

IF ERROR-STATUS:ERROR THEN RETURN.

/* ATRIBUI FALSO PARA QUE O EXCEL ESTEJA SEMPRE EM SEGUNDO PLANO */

chExcelApplication:VISIBLE = FALSE.

/* ABRE ARQUIVO PARA IMPORTACAO */

chWorkbook = chExcelApplication:Workbooks:OPEN(nomearquivo).

chWorkSheet = chExcelApplication:Sheets:ITEM (1).

ASSIGN i-linha = 2.

/* IMPORTA DADOS PARA A TEMP TABLE */

DO WHILE TRIM(chWorkSheet:Range("a" + STRING(i-linha)):VALUE) <> "" AND

chWorkSheet:Range("a" + STRING(i-linha)):VALUE <> ?:

CREATE tt-dados.

ASSIGN tt-dados.nome = chWorkSheet:Range("a" + STRING(i-linha)):VALUE

tt-dados.idade = chWorkSheet:Range("b" + STRING(i-linha)):VALUE

tt-dados.cidade = chWorkSheet:Range("c" + STRING(i-linha)):VALUE.

ASSIGN i-linha = i-linha + 1.

END.

/* ENCERRA A INSTANCIA DO EXCEL EM MEMORIA */

chWorkbook:Close().

chExcelApplication:Quit().

RELEASE OBJECT chExcelApplication.


RELEASE OBJECT chWorkbook.

RELEASE OBJECT chWorksheet.

FOR EACH tt-dados.

DISP tt-dados WITH WIDTH 200.

END.

IMPORTAR ARQUIVO CSV

/* CRIACAO DAS VARIAVEIS PARA IMPORTAR DADOS */

DEF VAR nome AS CHAR FORMAT "x(30)".

DEF VAR idade AS CHAR FORMAT "x(3)".

/* CRIACAO DAS VARIAVEIS PARA ARMAZENAR O CAMINHO DO ARQUIVO */

DEF VAR i-arquivo AS CHAR FORMAT "x(200)".

/* ARMAZENA INFORMACAO DO ARQUIVO A SER IMPORTADO */

ASSIGN i-arquivo = "c:\temp\testeArq.txt".

/* DEFINE STREAM PARA ARMAZENAR LINHA IMPORTADA */

DEF STREAM s-entrada.

/* IMPORTA DADOS DO ARQUIVO DELIMITANDO AS INFORMACOES PARA AS VARIAVEIS */

INPUT STREAM s-entrada FROM VALUE(i-arquivo).

REPEAT:

IMPORT STREAM s-entrada DELIMITER ";"

nome idade.

DISP nome idade.

END.

INPUT CLOSE.

/* IMPORTA DADOS DO ARQUIVO DELIMITANDO AS INFORMACOES PARA UMA TEMP-TABLE */

DEF TEMP-TABLE tt-dados

FIELD nome AS CHAR FORMAT "x(30)"

FIELD idade AS CHAR FORMAT "x(3)".

DEF VAR i-arquivo2 AS CHAR FORMAT "x(200)".

ASSIGN i-arquivo2 = "c:\temp\testeArq.txt".

DEF STREAM s-entrada2.

INPUT STREAM s-entrada2 FROM VALUE(i-arquivo2).

REPEAT:
CREATE tt-dados.

IMPORT STREAM s-entrada2 DELIMITER ";"

tt-dados.nome

tt-dados.idade.

END.

INPUT CLOSE.

FOR EACH tt-dados.

DISP tt-dados.

END.

Você também pode gostar