Popular Excel with Java object

1

Hello, I'm having a problem popping a table the way I need it, I want to do something like this.

ButwithmycodeIonlygetthatpopular.

HowdoIformatinthesameway?ItriedtoskipthelinestomakeitlookalikebutIcannot.

publicvoidexportar()throwsIOException{ArrayList<Dados>array=listaDados;StringfileName="C:/novo.xlsx";
    XSSFWorkbook workbook = new XSSFWorkbook();
    XSSFSheet sheetEtiquetas = workbook.createSheet("Etiquetas");

    int rownum = 0;

    for (Dados dados : array) {
        Row row = sheetEtiquetas.createRow(rownum++);
        int cellnum = 0;

        Cell cellOp = row.createCell(cellnum++);
        cellOp.setCellValue("Número O.P: " + dados.getNumeroOP());
        Cell cellNomeItem = row.createCell(cellnum++);
        cellNomeItem.setCellValue("Código da Peça: " + dados.getNomeItem());

        Cell cellPedido = row.createCell(cellnum++);
        cellPedido.setCellValue("Número do Pedido: " + dados.getNumeroPedido());
        Cell cellCliente = row.createCell(cellnum++);
        cellCliente.setCellValue("Cliente: " + dados.getCliente());

        Cell cellQuantidade = row.createCell(cellnum++);
        cellQuantidade.setCellValue("Quantidade: " + dados.getQuantidade());
        rownum++;

    }

    try {
        FileOutputStream out
                = new FileOutputStream(new File(fileName));
        workbook.write(out);
        out.close();
        System.out.println("Arquivo Excel criado com sucesso!");

    } catch (FileNotFoundException e) {
        e.printStackTrace();
        System.out.println("Arquivo não encontrado!");
    } catch (IOException e) {
        e.printStackTrace();
        System.out.println("Erro na edição do arquivo!");
    }

Thank you.

    
asked by anonymous 17.08.2018 / 14:54

1 answer

1

The problem is that you are creating all items in the same row . For skip lines , another row must be created.

for (Dado data : array) {

    Row row = sheetEtiquetas.createRow(rownum++);
    int cellnum = 0;

    Cell cellOp = row.createCell(cellnum++);
    cellOp.setCellValue("Número O.P: " + data.getNumeroOP());
    Cell cellNomeItem = row.createCell(cellnum++);
    cellNomeItem.setCellValue("Código da Peça: " + data.getNomeItem());

    // Alinha a esquerda
    row = sheetEtiquetas.createRow(rownum++);
    cellnum = 0;

    Cell cellPedido = row.createCell(cellnum++);
    cellPedido.setCellValue("Número do Pedido: " + data.getNumeroPedido());
    Cell cellCliente = row.createCell(cellnum++);
    cellCliente.setCellValue("Cliente: " + data.getCliente());

    // Alinha a esquerda
    row = sheetEtiquetas.createRow(rownum++);
    cellnum = 0;

    Cell cellQuantidade = row.createCell(cellnum++);
    cellQuantidade.setCellValue("Quantidade: " + data.getQuantidade());
    rownum++;
}

Note that to skip the line, I created a new row , and reset the value of cellNum , so that the next values entered are left.

    
17.08.2018 / 15:21