Prezado SCN,
Meu nome é
greltel15
e decidi escrever um blog sobre o manuseio de arquivos TSV e CSV. Primeiro veremos o que realmente são os arquivos TSV e CSV e depois desenvolveremos métodos de código para converter esses arquivos. Gostaria de agradecer ao meu colega e querido amigo
Dimitris Valouxis
por seu apoio e sua contribuição para o artigo atual. Sem ele, este blog não existiria.
Neste blog, compartilharemos trechos de código para lidar com arquivos CSV e TSV. É uma tarefa diária converter esses arquivos em Tabelas Internas (e vice-versa) e é muito útil e economiza tempo quando temos um código pronto para uso.
Se você não sabe o que é um arquivo CSV, pode dar uma olhada no seguinte
link
. Em poucas palavras, o CSV é um arquivo de texto simples no qual os dados e informações são separados usando um separador (na maioria dos casos, o separador é uma vírgula). Existem dois pontos principais a serem lembrados. O separador é usado para separar dois campos (valores) enquanto o delimitador é usado para definir os limites. Muitas vezes, as aspas duplas são usadas como delimitador.
Segue uma breve explicação sobre arquivos TSV. Assim, o formato delimitado por tabulação armazena informações
de um banco de dados ou planilha no formato de uma estrutura tabular.
Cada entrada ocupa uma linha no arquivo de texto e os vários campos são separados por abas. É amplamente utilizado, pois os dados entre diferentes sistemas podem ser facilmente transferidos por meio desse formato. Para criar um arquivo TSV.txt, basta salvar uma planilha do Excel como texto delimitado por tabulação. Siga
este
link para mais informações.
Costumamos codificar em métodos de classe global para estar disponíveis sempre que precisarmos
deles. Portanto, todos os códigos fornecidos estão na forma de método, mas será uma tarefa fácil se você quiser
convertê-los para um relatório local ou módulo de função. Verifique os parâmetros de importação e exportação para
entender os tipos usados. Tentamos manter os códigos o mais genéricos possível para garantir que funcionem em todos os casos e é por isso que passamos 'ANY TABLE' como tipo de tabela.
1)CSV para Tabela Interna
Vamos começar com a conversão de arquivo CSV para Tabela Interna. Usando cl_rsda_csv_converted para separar o valor da vírgula em colunas, nosso trabalho fica muito mais fácil. Primeiro, precisamos criar uma instância da classe e passar os parâmetros de separador e delimitador para o método 'CREATE'. Em seguida, basta carregar o arquivo CSV para os dados brutos e depois separar os valores da linha em colunas, fazendo um loop na tabela e usando nossa classe.
...
2)Tabela Interna para CSV
Baixe a Tabela Interna como CSV para o Servidor de Apresentação. Primeiro, temos que criar a tabela de destino com base no valor da tabela principal. Faça um loop na tabela principal e, para cada linha, separe os valores usando vírgulas e depois adicione linhas à tabela de strings de destino. Por fim, baixe a tabela usando GUI_DOWNLOAD. É exatamente o procedimento oposto ao de upload de arquivo CSV.
...
3)Delimitado por Tabulação para Tabela Interna
Este é simples. Basta usar GUI_UPLOAD com o tipo de arquivo 'ASC' e a tabela estará pronta. Com 'ASC', a tabela é transferida como texto. As conversões de saída também são realizadas.
...
4)Tabela Interna para Delimitado por Tabulação
Agora, para baixar a tabela Delimitada por Tabulação, usamos o mesmo processo que o CSV, mas em vez de vírgula, usamos a aba horizontal para dividir os campos em colunas. Aqui está a parte complicada.
Você NÃO deve usar o símbolo # codificado, mas sim deve usar o atributo cl_abap_char_utilities=>horizontal_tab. Em resumo, há uma diferença no valor hexadecimal entre # como um caractere normal e # como um caractere de aba e, portanto, o ABAP os trata de maneira diferente em cada caso. Você pode ler um artigo incrível
aqui
que esclarece o caso e explica por que você deve ser muito cuidadoso ao lidar com a aba horizontal. Sugerimos fortemente que você dê uma olhada.
Finalmente, após formar a tabela, usamos GUI_DOWNLOAD com o tipo de arquivo 'DAT' para salvar nosso arquivo. DAT é usado para transferência coluna por coluna. Com este formato, os dados são transferidos como com texto ASC. No entanto, nenhuma conversão é realizada e as colunas são separadas por caracteres de aba
...
Conclusão
Então, aqui está tudo