Alunos Francis_1982 Postado Março 3, 2023 Alunos Postado Março 3, 2023 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 Resultado que tentei, precisaria ficar assim, uma linha para cada documento. OF0520 entrada 02.2023.txt
0 Alunos Solução Vitor Peralva Postado Março 6, 2023 Alunos Solução Postado Março 6, 2023 Blz. É que ele ainda tem a questão de dividir ICMS e IPI em 3 categorias, o que amplia a quantidade de colunas.
0 Alunos Vitor Peralva Postado Março 4, 2023 Alunos Postado Março 4, 2023 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"
0 Alunos Francis_1982 Postado Março 6, 2023 Autor Alunos Postado Março 6, 2023 Bom dia @Vitor Peralva muito obrigado, já me clareou aqui. Vou fazer as cálculos necessários para conferencia e te retorno, mas ja ajudou muito. Obrigado Mesmo!! 1
Pergunta
Francis_1982
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
Resultado que tentei, precisaria ficar assim, uma linha para cada documento.
OF0520 entrada 02.2023.txt
3 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora