Versão atual:

Criar outra aba no excel JAVA

Pessoas, O excel tem uma limitação de linhas que são de 65536 linhas, com isso estava querendo fazer essa validação o que estou fazendo está muito errado.

package br.com.montreal.planilha;

import java.io.File;
import java.io.FileOutputStream;
import java.math.BigDecimal;
import java.util.List;
import java.util.ListIterator;

import javax.swing.JOptionPane;
import javax.swing.JProgressBar;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

public class Excel {

    protected List<Object> listaSos;

    public void expExcel(String nomeArquivo, List<Object> listaSos,
            JProgressBar progressBar) {


        Workbook book = new SXSSFWorkbook(100);
        HSSFSheet firstSheet = (HSSFSheet) book.createSheet("SosSetores");

        FileOutputStream fos = null;

        try {

            fos = new FileOutputStream(new File(nomeArquivo));

            int i = 0;

            progressBar.setMaximum(listaSos.size() - 2);
            progressBar.setValue(0);

            ListIterator<Object> listItrSos = listaSos.listIterator();

            // XSSFRow plan = firstSheet.createRow(i);
            HSSFRow plan = firstSheet.createRow(i);

            plan.createCell(0).setCellValue("SOLIC");
            plan.createCell(1).setCellValue("SETOR");
            plan.createCell(2).setCellValue("ROTINA");
            plan.createCell(3).setCellValue("DATA DE ABERTURA");
            plan.createCell(4).setCellValue("HORA DE ABERTURA");
            plan.createCell(5).setCellValue("PRAZO DATA ORIGINAL");
            plan.createCell(6).setCellValue("PRAZO HORA ORIGINAL");
            plan.createCell(7).setCellValue("DATA DE ENCERRAMENTO");
            plan.createCell(8).setCellValue("HORA DE ENCERRAMENTO");
            plan.createCell(9).setCellValue("RESPONSÁVEL");

            while (listItrSos.hasNext()) {

                Object[] sos = (Object[]) listItrSos.next();

                // XSSFRow row = firstSheet.createRow(i);
                HSSFRow row = firstSheet.createRow(i);

                row.createCell(0)
                        .setCellValue(((BigDecimal) sos[0]).intValue());
                row.createCell(1)
                        .setCellValue(((BigDecimal) sos[1]).intValue());
                row.createCell(2).setCellValue((String) sos[2]);
                row.createCell(3).setCellValue((String) sos[3]);
                row.createCell(4).setCellValue((String) sos[4]);
                row.createCell(5).setCellValue((String) sos[5]);
                row.createCell(6).setCellValue((String) sos[6]);
                row.createCell(7).setCellValue((String) sos[7]);
                row.createCell(8).setCellValue((String) sos[8]);
                row.createCell(9).setCellValue((String) sos[9]);

                i++;

                progressBar.setValue(i);

            } // fim do for

            JOptionPane.showMessageDialog(null, "Processo Finalizado!");

            firstSheet.setColumnWidth(0, 10 * 300);
            firstSheet.setColumnWidth(1, 10 * 300);
            firstSheet.setColumnWidth(2, 10 * 1600);
            firstSheet.setColumnWidth(3, 10 * 650);
            firstSheet.setColumnWidth(4, 10 * 650);
            firstSheet.setColumnWidth(5, 10 * 650);
            firstSheet.setColumnWidth(6, 10 * 650);
            firstSheet.setColumnWidth(7, 10 * 650);
            firstSheet.setColumnWidth(8, 10 * 650);
            firstSheet.setColumnWidth(9, 10 * 900);

            book.write(fos);

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Erro ao exportar arquivo");
        } finally {
            try {
                fos.flush();
                fos.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    } // fim do metodo exp

}

Versões(2):

Ver a versão formatada

Criar outra aba no excel JAVA

Comentário

new question