Logo Hardware.com.br
Ilkyest
Ilkyest Super Zumbi Registrado
5.8K Mensagens 715 Curtidas

Planilha para buscar dados a partir de um arquivo de texto. Libreoffice (não sei se executa VBA)

#1 Por Ilkyest 28/06/2023 - 12:32
Colegas. 
Temos o seguinte texto


Nome......: PETER PAN                                  Cód 123456
CPF/CNPJ..:  000.000.000-00- Tit.                      Dt.Nasc..:  01/01/1900
Espécie...:  TRATOR DE PNEUS                        Cód inventário: 696969
Marca.....: MASSEY FERGUSON                                  Qtd: 1         
Modelo....: MF290                                                           
Placa/UF..:        /      Ano Fab/Mod: 2002 / 2002  Combustível:           
Renavam...:              Chassi/Série: 6968676959            Cor: VERMELHO 
Pot/Cap...: 0000085 HP          
Valor.....:            90.000,00


Agora eu quero, desses dados, os seguintes, para uma planilha chamada "inventário)


CLIENTE Código inventário BEM ANO FABRICAÇÃO/MODELO MARCA MODELO VALOR CHASSIS/SÉRIE


E gostaria que, a partir do  arquivo de texto, a planilha buscasse esses valores.

Porque depois disso, a planilha inventário será usada para uma mala direta, com um modelo padrão para o nosso departamento aqui.,

É possível fazer com que a planilha busque os dados em um arquivo de texto?

Detalhe, serão vários nomes no arquivo de texto, cada qual com seus dados.

Atualização: 28/06/2023 15:22
No forum do libreoffice postaram:

#!/usr/bin/gawk -f

BEGIN {
    # Two field separators, : followed by at least 1 space, or at least 3 spaces.
    FS = ": +| {3,}"
    # Semicolon separated "CSV" (SSV) preferred because data contains commas.
    ofs = ";"
    OFS = ofs
}

/^$/ {
    precord()
    next
}

# Name; Internal Code
# NIN
# Type; Inventory number
# Brand; Qtd
# Model
# Chassis/Serial number
# Value $
/^Name:/ {
    name = enquote($2)
    internal = enquote($4)
    next
}
/^NIN:/ {
    nin = enquote($2)
    next
}
/^Type:/ {
    type = enquote($2)
    inventory = enquote($4)
    next
}
/^Brand\./ {
    brand = enquote($2)
    next
}
/^Model\./ {
    model = enquote($2)
    next
}
/^Chassis\// {
    chassis = enquote($2)
    next
}
/^Value / {
    value = enquote($2)
    next
}

ENDFILE {
    precord()
}

# Name;NIN;Internal Code;Type;Brand;Model;Chassis/SN;Inventory Number;Value
function precord() {
    print name, nin, internal, type, brand, model, chassis, inventory, value
    name = nin = internal = type = brand = model = chassis = inventory = value = ""
}

function enquote(var) {
    quote = 0
    if (index(var, "\"&quot) {
        gsub(/"/, "\"\"", var)
        quote = 1
    }
    if (quote || index(var, ofs))
        var = "\"" var "\""
    return var
}


Só vou ter de entender
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal