CSVGenerator
O CSVGenerator tem o objeto de permitir a geração de arquivos CSV a partir da estrutura de dados utilizada pelo BIS. Aproveito a estrutura dos VOs e BISMetaObjects (VO_), isto é, aceita uma lista de VOs, e gera o arquivo CSV a partir das colunas selecionadas de dentro desses objetos.
Para exemplificar o funcionamento de todas as partes do CSVGenerator vamos imaginar que queremos exportar como CSV nosso cadastro de pessoas, lista de PersonVO.
CSVGeneratorOptions
O CSVGeneratorOptions carrega praticamente toda a configuração de como o arquivo deve ser gerado. Desta forma é possível realizar toda a definição em qualquer cama (UI por exemplo) e passar para o gerador de uma única vez. Permite que seja criado um componente único para manipular o objeto para as UIs e reaproveitado em todas as telas, útil principalmente quando o gerador ganha novas opções.
Entre as configurações básicas do arquivo estão:
- Delimitador - utilizado para separar os campos do arquivo
- Localidade - Define a localidade para formatação básica dos valores, como caractere de decimais, data, etc.
- Títulos das Colunas - Define se deve ser escrito uma linha no começo com os títulos das colunas.
- Valor de Nulo - Valor que deve ser utilizado caso o objeto tenha um valor nulo. Por padrão não é escrito nada, o equivalente á "", mas pode ser necessário distinguir o "" do null.
CSVGenerator
Todos os atributos de configuração já tem um valor padrão, de forma que para gerar um CSV, basta definir as colunas desejadas e passar a coleção de dados no método .generate().
![]() |
Exemplos de Uso
// Define as colunas no options
options.setColumns(new String[]{
PersonVO_.VO.displayname(),
PersonVO_.VO.fullname(),
PersonVO_.VO.cpfcnpj()
});
final CSVGenerator<PersonVO> gen = new CSVGenerator<PersonVO>(options); //Construtor vazio cria um CSVGeneratorOptions com a opções padrão. Mas depois tem que pegar o options para colocar as colunas ou terá um CSV vazio.
return gen.generate(personList); //Retorna o CSV com as colunas selecionadas.
|
O arquivo foi gerado, mas muitas vezes não é o que desejamos. Agora para formatar, configurar e manipular os dados é que precisará de configurações adicionais.