Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Criar arquivos xlsx para cada linha do "for"

Olá!

Minha dúvida é, como criar um arquivo xlsx para cada linha do "for". Minha lista tem um campo "Id_Plataforma" e eu gostaria de criar um arquivo para cada Id_Plataforma.

Poderiam me ajudar por favor?

Obrigado.

Public class ComissaoPagaDAOPorPlataforma {

    public List<ComissaoPaga> obterComissoesPorPlataforma() {

        List<ComissaoPaga> lista = new ArrayList<ComissaoPaga>();

        try {

            Connection connection = ConectaBancoDeDados.getConnection();
            Statement statement = connection.createStatement();

            statement.execute("select id_plataforma from tb_comissao_paga group by id_plataforma  order by  id_plataforma");

            ResultSet resultSet = statement.getResultSet();

            while(resultSet.next()) {

                ComissaoPaga comissao = new ComissaoPaga();

            String idPlataforma = resultSet.getString("id_plataforma");

                if(idPlataforma==null) {
                    comissao.setIdPlataforma(null);
                }else {
                    comissao.setIdPlataforma(Integer.valueOf(idPlataforma));
                }

            lista.add(comissao);
            }
        resultSet.close();
            statement.close();
            connection.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return lista;
    }
public class GerarArquivoXlsxPorPlataforma {

    public static void main(String[] args) {

    FileOutputStream fos = null;

    ComissaoPagaDAOPorPlataforma dao = new ComissaoPagaDAOPorPlataforma();

            List<ComissaoPaga> lista = dao.obterComissoesPorPlataforma();
    int i = 1;

            for (ComissaoPaga comissaoPaga : lista) {
                System.out.println(comissaoPaga);
                for(int n=1; n<=lista.size();n++)
                    if(comissaoPaga != null) {
                        fos = new FileOutputStream(new File("C:/temp/TESTE3.xlsx"));

        if(comissaoPaga.getPlataforma()==null) {
                    row.createCell(3).setCellValue("");
                } else {
                    SXSSFCell Plataforma = row.createCell(3); // ou >> row.createCell(3).setCellValue(comissaoPaga.getPlataforma());
                    Plataforma.setCellValue(comissaoPaga.getPlataforma());
                    Plataforma.setCellStyle(estilolinhas);

    i++;
            }

    workbook.write(fos);
            workbook.close();
2 respostas
solução!

Boa noite, Carlos! Como vai?

Basta que a cada iteração do for vc dê um novo nome ao arquivo criado! Para isso vc pode utilizar a variável auxiliar n do for concatenando ela ao nome do arquivo! Segue um exemplo prático:

fos = new FileOutputStream(new File("C:/temp/TESTE" + n + ".xlsx"));

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Obrigado Gabriel!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software