[RESOLVIDO] Leitura de Arquivo Excel

Discussão em 'EMS , HCM e Totvs 11' iniciado por Rogerio, Julho 16, 2010.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Galera, estou com um problema na leitura de arquivo excel, o que ta acontecendo...

    Estou gravando cod-estab e it-codigo em um arquivo excel, e estou gravando no excel com NumberFormat = "@"...
    ele gravar normal como texto,

    mas na hora que vou ler isso do excel ele me traz como
    cod-estab = 2,0000000000
    it-codigo = 2104004,0000000000


    alguem sabe onde estou errando
  2. elyson

    elyson Membro Participativo

    Na verdade você tem que na sua temp-table populada tratar estes campos de duas formas:

    1) - utilize o INT para converter para inteiro
    2) - utilize substring e pegue só oq interessa para gravar na tabela fisica
  3. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    No caso do estabelecimento tudo bem, mas no codigo do item naum tem como, pois existem itens com letras no codigo, entuam a funcao INT não ira funcionar...
  4. lvmor

    lvmor Sem Pontuação

    Rogerio,

    Receba o campo como char e trate por substring desprezando o que vier após a virgula.
  5. elyson

    elyson Membro Participativo

    Concordo com a resposta acima.
    Não tem jeito, vc tem que tratar isso na sua procedure de importação.
  6. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Caro colega,

    Quando importa-se celulas do excel pelo progress infelizmente isto ocorre, o que fiz foi o seguinte:

    01) Na celula A está gravado o código do estabelecimento;
    02) Na celula B está gravado o código do item;

    Na rotina de leitura do progress no excel, estou fazendo um tratamento na planilha para conseguir importar o valor correto, pois podemos ter as seguintes situações no código do item, por exemplo:

    01) Se o código do item tiver somente número e o primeiro número a esquerda é diferente de 0 => 123456789, o progress irá reconhecer como 123456789,0000000000000
    02) Se o código do item tiver somente número e o primeiro número a esquerda é igual a 0 => 00012345, o progress irá reconhecer como 12345,0000000000000, suprimindo os zeros a esquerda
    03) Se o código do item tiver letras e números => 1A23B45C678D9, o progress irá reconhecer como texto mesmo e importando corretamente.

    Para resolver este problema, antes de importar escreva na coluna C (ou outra vazia) a seguinte formula:

    <handle_excel>:RANGE("C1"):VALUE = '"ITEM==>"&A1'

    Quando importar para a variavel c-it-codigo faça o seguinte:

    assign c-it-codigo = replace(<handle_excel>:RANGE("C1"):VALUE,"ITEM==>","").
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página