Ir para conteúdo
  • 0

Organizar Livro Entrada em colunas e excluindo cabeçalhos das paginas,


Ir para solução Solucionado por Vitor Peralva ,

Pergunta

  • Alunos
Postado

Bom dia pessoal,  preciso de uma orientação, existe possibilidade de trabalhar livro .txt para que o resultado final fique em cada coluna especifica?

Caso alguém puder me dar alguma dia. Agradeço.

Exemplo abaixo é o livro fiscal em txt. Cada NF possui um imposto diferente

image.png.82650e80355750635b43985cf7621f90.png

 

Resultado que tentei, precisaria ficar assim, uma linha para cada documento.

 

image.png.b615671025cc065ddc14189fa412b4d8.png

image.png

OF0520 entrada 02.2023.txt

3 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
Postado

Boa Noite, @Francis_1982!

Segue uma sugestão de solução. Altere o caminho na etapa de fonte para o endereço da sua máquina.

 

let
    Fonte = Table.FromColumns({Lines.FromBinary(File.Contents("C:\Users\vitor\Downloads\OF0520 entrada 02.2023.txt"), null, null, 1252)}),
    #"Dividir Coluna pelas Posições" = Table.SplitColumn(Fonte, "Column1", Splitter.SplitTextByPositions({0, 9, 13, 21, 26, 36, 45, 49, 63, 73, 82, 87, 90, 104, 111, 124}), {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10", "Column1.11", "Column1.12", "Column1.13", "Column1.14", "Column1.15", "Column1.16"}),
    #"Linhas Filtradas" = Table.SelectRows(#"Dividir Coluna pelas Posições", each ([Column1.10] <> "       IP" and [Column1.10] <> "       ST" and [Column1.10] <> "      BAS" and [Column1.10] <> "  BASE CA" and [Column1.10] <> " *-------" and [Column1.10] <> " DE ORIGE" and [Column1.10] <> "* 1 - OPE" and [Column1.10] <> "* 2 - OPE" and [Column1.10] <> "* 3 - OPE" and [Column1.10] <> "*--------" and [Column1.10] <> "------- V" and [Column1.10] <> "---------" and [Column1.10] <> "CAO      " and [Column1.10] <> "FISCAL IC" and [Column1.10] <> "ODIGO FIS")),
    #"Personalização Adicionada4" = Table.AddColumn(#"Linhas Filtradas", "LinhaCorte", each if Text.Start([Column1.1], 8) = "SUBTOTAL" then "1" else null),
    #"Preenchido Abaixo1" = Table.FillDown(#"Personalização Adicionada4",{"LinhaCorte"}),
    #"Linhas Filtradas1" = Table.SelectRows(#"Preenchido Abaixo1", each ([LinhaCorte] = null)),
    #"Colunas Removidas2" = Table.RemoveColumns(#"Linhas Filtradas1",{"LinhaCorte"}),
    #"Linhas em Branco Removidas" = Table.SelectRows(#"Colunas Removidas2", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
    #"Texto Aparado" = Table.TransformColumns(#"Linhas em Branco Removidas",{{"Column1.1", Text.Trim, type text}, {"Column1.2", Text.Trim, type text}, {"Column1.3", Text.Trim, type text}, {"Column1.4", Text.Trim, type text}, {"Column1.5", Text.Trim, type text}, {"Column1.6", Text.Trim, type text}, {"Column1.7", Text.Trim, type text}, {"Column1.8", Text.Trim, type text}, {"Column1.9", Text.Trim, type text}, {"Column1.10", Text.Trim, type text}, {"Column1.11", Text.Trim, type text}, {"Column1.12", Text.Trim, type text}, {"Column1.13", Text.Trim, type text}, {"Column1.14", Text.Trim, type text}, {"Column1.15", Text.Trim, type text}, {"Column1.16", Text.Trim, type text}}),
    #"Índice Adicionado" = Table.AddIndexColumn(#"Texto Aparado", "Índice", 1, 1, Int64.Type),
    #"Personalização Adicionada" = Table.AddColumn(#"Índice Adicionado", "Personalizar", each if [Column1.1] <> "" then [Índice] else null),
    #"Preenchido Abaixo" = Table.FillDown(#"Personalização Adicionada",{"Personalizar"}),
    #"Colunas Removidas" = Table.RemoveColumns(#"Preenchido Abaixo",{"Índice"}),
    #"Linhas Agrupadas" = Table.Group(#"Colunas Removidas", {"Personalizar"}, {{"Linhas", each _, type table [Column1.1=text, Column1.2=text, Column1.3=text, Column1.4=text, Column1.5=text, Column1.6=text, Column1.7=text, Column1.8=text, Column1.9=text, Column1.10=text, Column1.11=text, Column1.12=text, Column1.13=text, Column1.14=text, Column1.15=text, Column1.16=text, Índice=number, Personalizar=number]}}),
    #"Personalização Adicionada1" = Table.AddColumn(#"Linhas Agrupadas", "OBSERVAÇÃO", each Text.Combine(List.Select([Linhas][Column1.16], each _ <> "")), type text ),

    #"Personalização Adicionada2" = 
        Table.AddColumn(
            #"Personalização Adicionada1",
            "Personalizar.1",
            each 
                Table.PromoteHeaders( 
                    Table.Transpose(
                        Table.SelectColumns( 
                            Table.AddColumn( 
                                Table.UnpivotOtherColumns( 
                                    Table.AddColumn(
                                        Table.RenameColumns(
                                            Table.SelectRows(
                                                [Linhas][ [Column1.11], [Column1.12], [Column1.13], [Column1.14], [Column1.15] ], 
                                                each ([Column1.11] <> "")
                                            ),
                                            {{"Column1.11", "Tributo"}, {"Column1.12", "Tipo"}, {"Column1.13", "BC"}, {"Column1.14", "Aliquota"}, {"Column1.15", "Valor Tributo"}}
                                        ),
                                        "Tipo Tributo",
                                        each if [Tipo] <> "" then [Tributo] & ".Tipo" & [Tipo] else [Tributo]
                                    ) [ [Tipo Tributo], [BC], [Aliquota], [Valor Tributo] ],
                                    {"Tipo Tributo"},
                                    "Atributo",
                                    "Valor"
                                ),
                                "Coluna",
                                each [Tipo Tributo] & "." & [Atributo]
                            ),
                            {"Coluna", "Valor"}
                        )
                    )
                )
        ),
    #"Colunas Removidas1" = Table.RemoveColumns(#"Personalização Adicionada2",{"Personalizar"}),
    #"Personalização Adicionada3" = Table.AddColumn(#"Colunas Removidas1", "Personalizar", each Table.SelectRows([Linhas], each [Column1.1] <> "") [ [Column1.1], [Column1.2], [Column1.3], [Column1.4], [Column1.5], [Column1.6], [Column1.7], [Column1.8], [Column1.9], [Column1.10] ] ),
    #"Outras Colunas Removidas" = Table.SelectColumns(#"Personalização Adicionada3",{"Personalizar", "Personalizar.1", "OBSERVAÇÃO"}),
    #"Personalizar Expandido" = Table.ExpandTableColumn(#"Outras Colunas Removidas", "Personalizar", {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10"}, {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10"}),
    #"Personalizar.1 Expandido" = Table.ExpandTableColumn(#"Personalizar Expandido", "Personalizar.1", {"ICMS.Tipo3.BC", "ICMS.Tipo3.Aliquota", "ICMS.Tipo3.Valor Tributo", "IPI.Tipo3.BC", "IPI.Tipo3.Aliquota", "IPI.Tipo3.Valor Tributo", "ICMS.Tipo2.BC", "ICMS.Tipo2.Aliquota", "ICMS.Tipo2.Valor Tributo", "IPI.Tipo2.BC", "IPI.Tipo2.Aliquota", "IPI.Tipo2.Valor Tributo", "ICMS.Tipo1.BC", "ICMS.Tipo1.Aliquota", "ICMS.Tipo1.Valor Tributo", "ST.BC", "ST.Aliquota", "ST.Valor Tributo", "OBS.BC", "OBS.Aliquota", "OBS.Valor Tributo", "IPI.Tipo1.BC", "IPI.Tipo1.Aliquota", "IPI.Tipo1.Valor Tributo", "ICMS.Tipo1.BC_1", "ICMS.Tipo1.Aliquota_2", "ICMS.Tipo1.Valor Tributo_3"}, {"ICMS.Tipo3.BC", "ICMS.Tipo3.Aliquota", "ICMS.Tipo3.Valor Tributo", "IPI.Tipo3.BC", "IPI.Tipo3.Aliquota", "IPI.Tipo3.Valor Tributo", "ICMS.Tipo2.BC", "ICMS.Tipo2.Aliquota", "ICMS.Tipo2.Valor Tributo", "IPI.Tipo2.BC", "IPI.Tipo2.Aliquota", "IPI.Tipo2.Valor Tributo", "ICMS.Tipo1.BC", "ICMS.Tipo1.Aliquota", "ICMS.Tipo1.Valor Tributo", "ST.BC", "ST.Aliquota", "ST.Valor Tributo", "OBS.BC", "OBS.Aliquota", "OBS.Valor Tributo", "IPI.Tipo1.BC", "IPI.Tipo1.Aliquota", "IPI.Tipo1.Valor Tributo", "ICMS.Tipo1.BC_1", "ICMS.Tipo1.Aliquota_2", "ICMS.Tipo1.Valor Tributo_3"}),
    #"Colunas Renomeadas" = Table.RenameColumns(#"Personalizar.1 Expandido",{{"Column1.1", "DATA"}, {"Column1.2", "ESPECIE"}, {"Column1.3", "SUBSERIE"}, {"Column1.4", "NUMERO"}, {"Column1.5", "DATA DOCUMENTO"}, {"Column1.6", "CODIGO EMITENTE"}, {"Column1.7", "UF ORIGEM"}, {"Column1.8", "VALOR CONTABIL"}, {"Column1.9", "CODIFICACAO CONTABIL"}, {"Column1.10", "CODIFICACAO FISCAL"}})
in
    #"Colunas Renomeadas"

 

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...