1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Excel

Discussão em 'EMS , HCM e Totvs 11' iniciado por tandujar, Junho 21, 2017.

  1. Sidnei Alves

    Sidnei Alves Sem Pontuação

    Muito bom...

    Eu tenho rotinas que abrem os modelos e vai atualizando o excel e no final abre o excel de acordo com o modelo.

    Mas, o que eu nunca tentei e nem sei como é, é abrir um .csv a partir de um modelo.
    Como você faz isso? Teria como você postar o trecho do programa onde você abre o .csv como o modelo?

    Se você puder enviar parte do seu programa para o meu e-mail, eu agradeceria muito.
    sidnei.alves@br.nufarm.com

    Desde já agrerdeço!

    Sidnei
  2. Cneves

    Cneves Membro Participativo

    Bom dia,

    Teria um exemplo de como fazer isso?

    Atenciosamente,
  3. Cristina Sales Fernandes

    Cristina Sales Fernandes Sem Pontuação

  4. Cristina Sales Fernandes

    Cristina Sales Fernandes Sem Pontuação

    Boa noite mpdelphi!

    Pow, seria muito interessante aqui pra galera conhecer essa sua dica. Tenho feito programas no progress gerando em excel via uma planilha modelo, e ficando muito lento. Eu alterei para criar direto abrindo o excel deu uma melhorada na performance, mas nada muito considerável. Me dá um help kkkkk
  5. Geovane_PR

    Geovane_PR Sem Pontuação

    Tem uma forma de fazer gerando um csv e importando no excel, fica bem mais rápido e depois vc só abre pra formatar.
    Vc até pode usar um modelo, aí vc deixa linhas e/ou colunas em branco conforme a necessidade.
  6. marco.luques

    marco.luques Membro Ativo

    Eu trabalho com um codigo aqui que gera um arquivo texto e depois "Cola" na planilha, que também é bem rápido.

    Primeiro gera um arquivo separado por tabulação chr(9)

    output to value(c-arquivo) no-convert.
    do on error undo, return error on stop undo, return error:
    for each ttDados:

    run pi-acompanhar in h-acomp(input string(ttDados.dt-trans)).


    put unformat ttDados.it-codigo chr(9)
    ttDados.quantidade chr(9)
    ttDados.dt-trans chr(9)
    ttDados.un chr(9)
    ttDados.esp-docto chr(9)
    ttDados.preco-total chr(9)
    ttDados.preco-medio-unit chr(9)
    ttDados.dt-emissao chr(9)
    ttDados.nr-nota-fisc chr(9)
    ttDados.serie chr(9)
    ttDados.cod-emitente chr(9)
    ttDados.nome-abrev chr(9)
    ttDados.uf chr(9)
    ttDados.nat-operacao chr(9)
    ttDados.cfop chr(9)
    ttDados.sequencia chr(9)
    ttDados.desc-item chr(9)
    ttDados.ge-codigo chr(9)
    ttDados.familia chr(9)
    ttDados.cod-depos chr(9)
    ttDados.cod-localiz chr(9)
    ttDados.lote chr(9)
    ttDados.nro-docto chr(9)
    ttDados.nr-ord-produ
    skip.

    end.
    end.



    Depois cria uma nova planilha, formata o cabeçalho e depois usa o procedimento abaixo para colar o arquivo no excel:

    RUN piImportaArquivoToExcel in this-procedure (INPUT AppExcel,
    INPUT c-arquivo,
    INPUT "A2",
    INPUT 1,
    INPUT "D,D").






    PROCEDURE piImportaArquivoToExcel :
    /*------------------------------------------------------------------------------
    Purpose:
    Parameters: <none>
    Notes:
    ------------------------------------------------------------------------------*/
    DEF INPUT PARAM p-ApplExcel AS COM-HANDLE.
    DEF INPUT PARAM p-Arquivo AS CHAR.
    DEF INPUT PARAM p-celula AS CHAR.
    DEF INPUT PARAM p-page AS INT.
    DEF INPUT PARAM p-ColText AS CHAR.
    DEF VAR i AS INT INIT 0.
    DEF VAR cCol AS CHAR.
    DEF VAR chQueryTable AS COM-HANDLE.
    IF SEARCH(p-Arquivo) = ? THEN DO:
    message "Arquivo nÆo localizado!" view-as alert-box error.
    return "nok".
    END.

    p-ApplExcel:Sheets(p-page):Select.

    IF p-ColText <> "" THEN
    REPEAT:
    ASSIGN i = i + 1.
    cCol = ENTRY(i,p-ColText) NO-ERROR.
    IF p-ColText <> "" AND NOT ERROR-STATUS:ERROR THEN DO:
    p-ApplExcel:Range(cCol + '20'):SELECT.
    p-ApplExcel:Columns(cCol + ':' + cCol):Select.
    p-ApplExcel:Range(cCol + '20'):Activate.
    p-ApplExcel:Selection:NumberFormat = "@".
    END.
    ELSE
    LEAVE.
    END.

    p-ApplExcel:Range("A1"):SELECT.

    chQueryTable = p-ApplExcel:sheets:ITEM(p-page):QueryTables:Add("TEXT;" + p-Arquivo, p-ApplExcel:range(p-celula) ).
    ASSIGN chQueryTable:name = 'Dados'
    chQueryTable:FieldNames = True
    chQueryTable:RowNumbers = False
    chQueryTable:FillAdjacentFormulas = False
    chQueryTable:preserveFormatting = True
    chQueryTable:RefreshOnFileOpen = False
    chQueryTable:RefreshStyle = 1
    chQueryTable:SavePassword = False
    chQueryTable:SaveData = True
    chQueryTable:AdjustColumnWidth = True
    chQueryTable:RefreshPeriod = 0
    chQueryTable:TextFilePromptOnRefresh = False
    chQueryTable:TextFilePlatform = 1252
    chQueryTable:TextFileStartRow = 1
    chQueryTable:TextFileParseType = 1
    chQueryTable:TextFileTextQualifier = 1
    chQueryTable:TextFileConsecutiveDelimiter = False
    chQueryTable:TextFileTabDelimiter = True
    chQueryTable:TextFileSemicolonDelimiter = False
    chQueryTable:TextFileCommaDelimiter = False
    chQueryTable:TextFileSpaceDelimiter = False
    chQueryTable:TextFileTrailingMinusNumbers = True
    chQueryTable:TextFileTabDelimiter = True
    chQueryTable:TextFileDecimalSeparator = ","
    chQueryTable:TextFileThousandsSeparator = ".".
    chQueryTable:REFRESH().
    RELEASE OBJECT chQueryTable.
    RETURN "ok".
    END PROCEDURE.

Compartilhe esta Página