Example usage for org.apache.poi.hssf.usermodel HSSFCellStyle setWrapText

List of usage examples for org.apache.poi.hssf.usermodel HSSFCellStyle setWrapText

Introduction

In this page you can find the example usage for org.apache.poi.hssf.usermodel HSSFCellStyle setWrapText.

Prototype

@Override
public void setWrapText(boolean wrapped) 

Source Link

Document

set whether the text should be wrapped

Usage

From source file:mx.avanti.siract.ui.FiltrosBeanUI.java

public void Export2ExcelSemaforoProgramasEd() throws Throwable {
    //variables listaux
    ReporteAux reporteUI = new ReporteAux();

    // objeto de hoja de excel
    HSSFWorkbook workbook = new HSSFWorkbook();
    String nombreLibro = "";
    //guardamos imagen UABC en Documento
    URL location = FiltrosBeanUI.class.getProtectionDomain().getCodeSource().getLocation();
    String path = location.getFile();
    String replace = path.replace("FiltrosBeanUI.class", "uabclogo.png");
    //InputStream uabc_image = new FileInputStream(replace);
    //InputStream uabc_image = new FileInputStream("C://decode/uabclogo.png");
    InputStream uabc_image = new FileInputStream("/home/user/decode/uabclogo.png");
    byte[] bytes = IOUtils.toByteArray(uabc_image);
    int uabcLogo = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
    uabc_image.close();//from w ww.j a va  2 s . c om

    //definimos estilo a celda titulo de los encabezados con logo escuela
    HSSFCellStyle style = workbook.createCellStyle();
    HSSFFont font = workbook.createFont();
    font.setFontName(HSSFFont.FONT_ARIAL);
    font.setFontHeightInPoints((short) 20);
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    font.setColor(HSSFColor.GREEN.index);
    style.setFont(font);

    //setCellStyle(style); 

    //definimos los bordes de celdas en tabla
    HSSFCellStyle borderstabla = workbook.createCellStyle();
    borderstabla.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    borderstabla.setBorderTop(HSSFCellStyle.BORDER_THIN);
    borderstabla.setBorderRight(HSSFCellStyle.BORDER_THIN);
    borderstabla.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    font = workbook.createFont();
    borderstabla.setFont(font);

    //definimos el estilo de las cabezeras de una tabla
    HSSFCellStyle headerTabla = workbook.createCellStyle();
    HSSFFont fontwit = workbook.createFont();
    fontwit.setColor(HSSFColor.WHITE.index);
    headerTabla.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    headerTabla.setBorderTop(HSSFCellStyle.BORDER_THIN);
    headerTabla.setBorderRight(HSSFCellStyle.BORDER_THIN);
    headerTabla.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    headerTabla.setFillForegroundColor(HSSFColor.GREEN.index);
    headerTabla.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    headerTabla.setFont(fontwit);
    //aqui cambie
    headerTabla.setWrapText(true);
    //aqui cambie

    //if(criterio.equalsIgnoreCase("programa_educativo")){
    HSSFSheet sheet = workbook.createSheet("Programas Educativos");
    nombreLibro = "- Director";

    //  if(reporte.equalsIgnoreCase("entregados")){
    nombreLibro = "RACT General " + nombreLibro;

    //definimos encabezado
    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);

    HSSFRow row1 = sheet.createRow(7);
    row1.setHeight((short) 600);
    HSSFCell cell = row1.createCell(1);
    cell.setCellValue(
            "Concentrado de Reporte de Avance de Contenido Temtico General  por Programa Educativo");
    cell.setCellStyle(style);

    //                HSSFRow row1 = sheet.createRow(14);
    //                row1.setHeightInPoints(56);
    //                HSSFRow row2 = sheet.createRow(28);
    //                row2.setHeightInPoints(56);
    //                HSSFRow row3 = sheet.createRow(42);
    //                row3.setHeightInPoints(56);

    //aqui cambie jesus ruelas
    //for(int i=0;i<28;i++){
    //                 sheet.autoSizeColumn(1);
    //                 sheet.autoSizeColumn(2);
    //                 sheet.autoSizeColumn(3);
    //                 sheet.autoSizeColumn(4);

    //merge cells de Total de RACT General de + ProgEd
    sheet.addMergedRegion(new CellRangeAddress(13, 13, 1, 5));
    sheet.addMergedRegion(new CellRangeAddress(13, 13, 7, 11));
    sheet.addMergedRegion(new CellRangeAddress(13, 13, 13, 17));
    sheet.addMergedRegion(new CellRangeAddress(13, 13, 19, 23));
    sheet.addMergedRegion(new CellRangeAddress(13, 13, 25, 29));

    sheet.addMergedRegion(new CellRangeAddress(27, 27, 1, 5));
    sheet.addMergedRegion(new CellRangeAddress(27, 27, 7, 11));
    sheet.addMergedRegion(new CellRangeAddress(27, 27, 13, 17));
    sheet.addMergedRegion(new CellRangeAddress(27, 27, 19, 23));
    sheet.addMergedRegion(new CellRangeAddress(27, 27, 25, 29));

    sheet.addMergedRegion(new CellRangeAddress(41, 41, 1, 5));
    sheet.addMergedRegion(new CellRangeAddress(41, 41, 7, 11));
    sheet.addMergedRegion(new CellRangeAddress(41, 41, 13, 17));
    sheet.addMergedRegion(new CellRangeAddress(41, 41, 19, 23));
    sheet.addMergedRegion(new CellRangeAddress(41, 41, 25, 29));

    sheet.addMergedRegion(new CellRangeAddress(55, 55, 1, 5));
    sheet.addMergedRegion(new CellRangeAddress(55, 55, 7, 11));
    sheet.addMergedRegion(new CellRangeAddress(55, 55, 13, 17));
    sheet.addMergedRegion(new CellRangeAddress(55, 55, 19, 23));
    sheet.addMergedRegion(new CellRangeAddress(55, 55, 25, 29));

    sheet.addMergedRegion(new CellRangeAddress(69, 69, 1, 5));
    sheet.addMergedRegion(new CellRangeAddress(69, 69, 7, 11));
    sheet.addMergedRegion(new CellRangeAddress(69, 69, 13, 17));
    sheet.addMergedRegion(new CellRangeAddress(69, 69, 19, 23));
    sheet.addMergedRegion(new CellRangeAddress(69, 69, 25, 29));

    //merge cells de programa educativo
    sheet.addMergedRegion(new CellRangeAddress(11, 11, 2, 3));
    sheet.addMergedRegion(new CellRangeAddress(11, 11, 8, 9));
    sheet.addMergedRegion(new CellRangeAddress(11, 11, 14, 15));
    sheet.addMergedRegion(new CellRangeAddress(11, 11, 20, 21));
    sheet.addMergedRegion(new CellRangeAddress(11, 11, 26, 27));

    sheet.addMergedRegion(new CellRangeAddress(25, 25, 2, 3));
    sheet.addMergedRegion(new CellRangeAddress(25, 25, 8, 9));
    sheet.addMergedRegion(new CellRangeAddress(25, 25, 14, 15));
    sheet.addMergedRegion(new CellRangeAddress(25, 25, 20, 21));
    sheet.addMergedRegion(new CellRangeAddress(25, 25, 26, 27));

    sheet.addMergedRegion(new CellRangeAddress(39, 39, 2, 3));
    sheet.addMergedRegion(new CellRangeAddress(39, 39, 8, 9));
    sheet.addMergedRegion(new CellRangeAddress(39, 39, 14, 15));
    sheet.addMergedRegion(new CellRangeAddress(39, 39, 20, 21));
    sheet.addMergedRegion(new CellRangeAddress(39, 39, 26, 27));

    sheet.addMergedRegion(new CellRangeAddress(53, 53, 2, 3));
    sheet.addMergedRegion(new CellRangeAddress(53, 53, 8, 9));
    sheet.addMergedRegion(new CellRangeAddress(53, 53, 14, 15));
    sheet.addMergedRegion(new CellRangeAddress(53, 53, 20, 21));
    sheet.addMergedRegion(new CellRangeAddress(53, 53, 26, 27));

    sheet.addMergedRegion(new CellRangeAddress(67, 67, 2, 3));
    sheet.addMergedRegion(new CellRangeAddress(67, 67, 8, 9));
    sheet.addMergedRegion(new CellRangeAddress(67, 67, 14, 15));
    sheet.addMergedRegion(new CellRangeAddress(67, 67, 20, 21));
    sheet.addMergedRegion(new CellRangeAddress(67, 67, 26, 27));
    //}
    //aqui cambie jesus ruelas

    //mostraremos tabla con
    // Programas educativos //  Total Racs entregados // Total Esperados
    //preparamos informacion para insertar
    List<Programaeducativo> programasByUnidad = getProgramasByUnidad();
    List<Planestudio> planesByPrograma = getPlanesByPrograma();
    ArrayList<String> listaProgEdContar = esperadosDelegate.getSemadoroProgEdValor(1);

    //setCellStyle(style); 

    //setExDat(sheet, 7, 1, "Concentrado de Reporte de Avance de Contenido Temtico General  por Programa Educativo");

    //imrpiimiremos la tabla
    // Definimos los encabezados de la tabla

    int pos = 0;

    int row = 11;
    int col = 1;

    Boolean bandPe = false;

    for (Programaeducativo pe : programasByUnidad) {
        for (String peContar : listaProgEdContar) {

            String[] contarEntEspProgEd;

            if (listaProgEdContar.size() >= pos) {
                if (peContar.contains(pe.getPednombre())) {

                    contarEntEspProgEd = listaProgEdContar.get(pos).split("-");

                    setExDat(sheet, row, col, "Clave");
                    setExDat(sheet, row, col + 1, "Programa Educativo");
                    setExDat(sheet, row, col + 3, "Plan de Estudios");
                    setExDat(sheet, row, col + 4, "Responsable");

                    //    if (contarEntEspProgEd[0].equalsIgnoreCase(programasByUnidad.get(0).getPednombre())) {

                    setExDat(sheet, row + 1, col, pe.getPedclave());
                    setExDat(sheet, row + 1, col + 1, pe.getPednombre());
                    if (!(planesByPrograma.isEmpty())) {
                        setExDat(sheet, row + 1, col + 2, planesByPrograma.get(0).getPesvigenciaPlan());
                    }
                    setExDat(sheet, row + 1, col + 3, "");

                    //   }

                    setExDat(sheet, row + 2, col,
                            "Total de RACT General de " + programasByUnidad.get(0).getPednombre());

                    setExDat(sheet, row + 3, col, "Resumen de totales \r\n por numero de RACT");
                    setExDat(sheet, row + 3, col + 1, "Total entregados");
                    setExDat(sheet, row + 3, col + 2, "%");
                    setExDat(sheet, row + 3, col + 3, "Total esperados");
                    setExDat(sheet, row + 3, col + 4, "%");

                    sheet.getRow(row + 3).getCell(1);//aqui modifique jesus ruelas

                    float porcentEnt = (Float.parseFloat(contarEntEspProgEd[1]))
                            / (Float.parseFloat(contarEntEspProgEd[2])) * 100;

                    float porcentEsp = 100 - porcentEnt;

                    //                setExDat(sheet, 15, 1, "Todos los RACTS");
                    //                setExDat(sheet, 15, 2, contarEntEspProgEd[1]);
                    //                setExDat(sheet, 15, 3, "" + porcentEnt + "%");
                    //                setExDat(sheet, 15, 4, contarEntEspProgEd[2]);
                    //                setExDat(sheet, 15, 5, ""  + porcentEsp + "%");
                    //String[] contarEntEspProgEd;
                    String[] contarEntRact1;
                    String[] contarEntRact2;
                    String[] contarEntRact3;
                    int esperadosProgEdUnicoRact = 0;

                    contarEntRact1 = contarEntEspProgEd[3].split(":");
                    contarEntRact2 = contarEntEspProgEd[4].split(":");
                    contarEntRact3 = contarEntEspProgEd[5].split(":");

                    esperadosProgEdUnicoRact = (Integer.parseInt(contarEntEspProgEd[2])) / 3;

                    float contarPorcentEntRact1 = (Float.parseFloat(contarEntRact1[1]))
                            / ((float) esperadosProgEdUnicoRact) * 100;
                    float contarPorcentEntRact2 = (Float.parseFloat(contarEntRact2[1]))
                            / ((float) esperadosProgEdUnicoRact) * 100;
                    float contarPorcentEntRact3 = (Float.parseFloat(contarEntRact3[1]))
                            / ((float) esperadosProgEdUnicoRact) * 100;

                    float contarPorcentEspRact1 = 100 - contarPorcentEntRact1;
                    float contarPorcentEspRact2 = 100 - contarPorcentEntRact2;
                    float contarPorcentEspRact3 = 100 - contarPorcentEntRact3;

                    setExDat(sheet, row + 4, col, "RACT 1");
                    setExDat(sheet, row + 4, col + 1, contarEntRact1[1]);
                    setExDat(sheet, row + 4, col + 2, "" + contarPorcentEntRact1 + "%");
                    setExDat(sheet, row + 4, col + 3, esperadosProgEdUnicoRact);
                    setExDat(sheet, row + 4, col + 4, "" + contarPorcentEspRact1 + "%");

                    setExDat(sheet, row + 5, col, "RACT 2");
                    setExDat(sheet, row + 5, col + 1, contarEntRact2[1]);
                    setExDat(sheet, row + 5, col + 2, "" + contarPorcentEntRact2 + "%");
                    setExDat(sheet, row + 5, col + 3, esperadosProgEdUnicoRact);
                    setExDat(sheet, row + 5, col + 4, "" + contarPorcentEspRact2 + "%");

                    setExDat(sheet, row + 6, col, "RACT 3");
                    setExDat(sheet, row + 6, col + 1, contarEntRact3[1]);
                    setExDat(sheet, row + 6, col + 2, "" + contarPorcentEntRact3 + "%");
                    setExDat(sheet, row + 6, col + 3, esperadosProgEdUnicoRact);
                    setExDat(sheet, row + 6, col + 4, "" + contarPorcentEspRact3 + "%");

                    setExDat(sheet, row + 7, col, "Todos los RACTS");
                    setExDat(sheet, row + 7, col + 1, contarEntEspProgEd[1]);
                    setExDat(sheet, row + 7, col + 2, "" + porcentEnt + "%");
                    setExDat(sheet, row + 7, col + 3, contarEntEspProgEd[2]);
                    setExDat(sheet, row + 7, col + 4, "" + porcentEsp + "%");

                    setStyleCell(sheet, headerTabla, row, col);
                    setStyleCell(sheet, headerTabla, row, col + 1);
                    setStyleCell(sheet, headerTabla, row, col + 2);
                    setStyleCell(sheet, headerTabla, row, col + 3);
                    setStyleCell(sheet, headerTabla, row, col + 4);

                    setStyleCell(sheet, headerTabla, row + 2, col);
                    setStyleCell(sheet, headerTabla, row + 2, col + 1);
                    setStyleCell(sheet, headerTabla, row + 2, col + 2);
                    setStyleCell(sheet, headerTabla, row + 2, col + 3);

                    setStyleCell(sheet, headerTabla, row + 3, col);
                    setStyleCell(sheet, headerTabla, row + 3, col + 1);
                    setStyleCell(sheet, headerTabla, row + 3, col + 2);
                    setStyleCell(sheet, headerTabla, row + 3, col + 3);
                    setStyleCell(sheet, headerTabla, row + 3, col + 4);

                    bandPe = true;

                    pos++;
                }

            }
            if (bandPe == true) {
                if (col >= 25) {
                    row = row + 14;
                    col = -5;
                }
                col = col + 6;
                bandPe = false;
            }
        }
    }
    /*sheet.autoSizeColumn(2);
    sheet.autoSizeColumn(3);
    sheet.autoSizeColumn(4);*/

    //imprimimos la informacion en su lugar

    int prow = 14;
    for (Programaeducativo programa : programasByUnidad) {
        if (selectProgramEducativo.contains(programa.getPedid().toString())) {
            setExDat(sheet, prow, 17, programa.getPednombre());
            setExDat(sheet, prow, 18, 75);
            setExDat(sheet, prow, 19, 100);
            prow++;
        }
    }
    //  }
    //}

    //finalizamos con
    //metodo para descargar el objeto
    System.out.println("Generando Excel");
    if (criterio != "" && reporte != "") {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        ExternalContext externalContext = facesContext.getExternalContext();
        externalContext.setResponseContentType("application/vnd.ms-excel");
        externalContext.setResponseHeader("Content-Disposition",
                "attachment; filename=\"" + nombreLibro + ".xls\"");
        workbook.write(externalContext.getResponseOutputStream());
        facesContext.responseComplete();
    } else {
        System.out.println("No se Genero por: Criterio->" + criterio + " , Reporte->" + reporte);
    }
}

From source file:mx.avanti.siract.ui.FiltrosBeanUI.java

public void Export2Excel() throws Throwable {
    //variables listaux
    ReporteAux reporteUI = new ReporteAux();

    // objeto de hoja de excel
    HSSFWorkbook workbook = new HSSFWorkbook();
    String nombreLibro = "";
    //guardamos imagen UABC en Documento
    URL location = FiltrosBeanUI.class.getProtectionDomain().getCodeSource().getLocation();
    String path = location.getFile();
    String replace = path.replace("FiltrosBeanUI.class", "uabclogo.png");
    //InputStream uabc_image = new FileInputStream(replace);
    //InputStream uabc_image = new FileInputStream("C://decode/uabclogo.png");
    InputStream uabc_image = new FileInputStream("/home/user/decode/uabclogo.png");
    byte[] bytes = IOUtils.toByteArray(uabc_image);
    int uabcLogo = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
    uabc_image.close();//w  w  w  .j a  v a2  s . com

    //definimos estilo a celda titulo de los encabezados con logo escuela
    HSSFCellStyle style = workbook.createCellStyle();
    HSSFFont font = workbook.createFont();
    font.setFontName(HSSFFont.FONT_ARIAL);
    font.setFontHeightInPoints((short) 20);
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    font.setColor(HSSFColor.GREEN.index);
    style.setFont(font);

    //definimos los bordes de celdas en tabla
    HSSFCellStyle borderstabla = workbook.createCellStyle();
    borderstabla.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    borderstabla.setBorderTop(HSSFCellStyle.BORDER_THIN);
    borderstabla.setBorderRight(HSSFCellStyle.BORDER_THIN);
    borderstabla.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    font = workbook.createFont();
    borderstabla.setFont(font);

    //definimos el estilo de las cabezeras de una tabla
    HSSFCellStyle headerTabla = workbook.createCellStyle();
    HSSFFont fontwit = workbook.createFont();
    fontwit.setColor(HSSFColor.WHITE.index);
    headerTabla.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    headerTabla.setBorderTop(HSSFCellStyle.BORDER_THIN);
    headerTabla.setBorderRight(HSSFCellStyle.BORDER_THIN);
    headerTabla.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    headerTabla.setFillForegroundColor(HSSFColor.GREEN.index);
    headerTabla.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    headerTabla.setFont(fontwit);

    if (criterio.equalsIgnoreCase("programa_educativo")) {
        HSSFSheet sheet = workbook.createSheet("Graficos");
        nombreLibro = "- Programa Educativo";

        if (reporte.equalsIgnoreCase("entregados")) {
            nombreLibro = "Entregados " + nombreLibro;

            //definimos encabezado
            sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);

            //mostraremos tabla con
            // Programas educativos //  Total Racs entregados // Total Esperados
            //preparamos informacion para insertar
            List<Programaeducativo> programasByUnidad = getProgramasByUnidad();

            //imrpiimiremos la tabla
            // Definimos los encabezados de la tabla
            setExDat(sheet, 13, 17, "Programa Educativo");
            setExDat(sheet, 13, 18, "Total de RACT Entregados");
            setExDat(sheet, 13, 19, "Total de RACT Esperados");
            setExDat(sheet, 13, 20, " ");

            setStyleCell(sheet, headerTabla, 13, 17);
            setStyleCell(sheet, headerTabla, 13, 18);
            setStyleCell(sheet, headerTabla, 13, 19);

            //imprimimos la informacion en su lugar

            int prow = 14;
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(programa.getPedid().toString())) {
                    setExDat(sheet, prow, 17, programa.getPednombre());
                    setExDat(sheet, prow, 18, 75);
                    setExDat(sheet, prow, 19, 100);
                    prow++;
                }
            }
            //Se obtiene consulta con los parametros seleccionados
            ArrayList<String> entregados = esperadosDelegate.getFullProgramaEdu(unidadacademica.getUacid(),
                    Plan, Programa, Ciclo);

            //agregamos programacion de grafico
            if (tipografico.equalsIgnoreCase("barras")) {
                BarChartCL demo1 = new BarChartCL("Estadsticas de Reportes Entregados por Programa Educativo",
                        entregados, "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("linea")) {
                LineChartDemo1 demo1 = new LineChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("pastel")) {
                PieChartDemo1 demo1 = new PieChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }

            //Se acaba grafico
            //recorreremos todo el list aux para revisar los programas educativos que utiliza
            //aun que podemos usar el selectProgramaeducativo

            /* Programacion de Hojas*/
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(Integer.toString(programa.getPedclave()))) {
                    //aqui creamos la hoja para el programa
                    sheet = workbook.createSheet(programa.getPednombre());
                    //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style); lo moveremos al final de la hoja para que no sea mdoficada la imagen
                    setExDat(sheet, 8, 3,
                            "Concentrado de Reporte de Avance de Contenido Temtico de Entregados por Programa Educativo");

                    boolean autotam = true;

                    //informacion de programa educativo tabla
                    setExDat(sheet, 14, 1, "Clave");
                    setExDat(sheet, 14, 2, "Programa Educativo");
                    setExDat(sheet, 14, 3, "Plan de Estudios");
                    setExDat(sheet, 14, 4, "Responsable");

                    setStyleCell(sheet, headerTabla, 14, 1);
                    setStyleCell(sheet, headerTabla, 14, 2);
                    setStyleCell(sheet, headerTabla, 14, 3);
                    setStyleCell(sheet, headerTabla, 14, 4);

                    //llenado de informacion
                    List<Planestudio> planes = filtrosBeanHelper.getConsultaDelegate()
                            .getPlanesByPrograma(programa.getPedclave());
                    setExDat(sheet, 15, 1, programa.getPedclave());
                    setExDat(sheet, 15, 2, programa.getPednombre());
                    setExDat(sheet, 15, 3, planes.get(0).getPesvigenciaPlan());
                    setExDat(sheet, 15, 4, "Llenar en tabla");
                    setStyleCell(sheet, borderstabla, 15, 1);
                    setStyleCell(sheet, borderstabla, 15, 2);
                    setStyleCell(sheet, borderstabla, 15, 3);
                    setStyleCell(sheet, borderstabla, 15, 4);

                    boolean uno = true;
                    int currow = 20;

                    Planestudio planeact = new Planestudio();
                    for (Planestudio planeactn : planes) {
                        planeact = planeactn;
                        break;
                    }

                    ReporteAvanceAux tempAux = new ReporteAvanceAux();
                    for (ReporteAvanceAux aux : listaAux) {
                        tempAux = aux;
                        break;
                    }

                    //intentaremos usar un solo plan
                    setExDat(sheet, currow, 1, "?reas de conocimiento");
                    setStyleCell(sheet, headerTabla, currow, 1);
                    currow++;
                    //cada plan de estudios tiene varias areas de conocimiento
                    //List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate().getAreasByPlan( tempAux.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo().getPlanestudio().getPesid() );
                    //List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate().getAreasByPlan( planeact.getPesid() );
                    List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate()
                            .getAreasByPlanClave(programa.getPedclave(),
                                    tempAux.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getPlanestudio().getPesvigenciaPlan());

                    for (Areaconocimiento areaCon : areasConocimiento) {
                        //clave , area de conocimiento, responsable
                        setExDat(sheet, currow, 1, "Clave");
                        setExDat(sheet, currow, 2, "?rea de conocimiento");
                        setExDat(sheet, currow, 3, "Responsable");
                        setStyleCell(sheet, headerTabla, currow, 1);
                        setStyleCell(sheet, headerTabla, currow, 2);
                        setStyleCell(sheet, headerTabla, currow, 3);

                        currow++;
                        setExDat(sheet, currow, 1, areaCon.getAcoclave()); //clave
                        setExDat(sheet, currow, 2, areaCon.getAconombre()); //area conociminto
                        setExDat(sheet, currow, 3, ""); //responsable

                        currow += 2;
                        //obtenemos las unidades de aprendisake
                        setExDat(sheet, currow, 1, "Clave unidad de aprendizaje");
                        setExDat(sheet, currow, 2, "Unidad de aprendizaje");
                        setExDat(sheet, currow, 3, "No. de empleado");
                        setExDat(sheet, currow, 4, "Nombre del profesor");
                        setExDat(sheet, currow, 5, "Grupo");
                        setExDat(sheet, currow, 6, "% Avance 1er reporte");
                        setExDat(sheet, currow, 7, "Fecha de elaboracin 1er RACT");
                        setExDat(sheet, currow, 8, "% Avance 2do reporte");
                        setExDat(sheet, currow, 9, "Fecha de elaboracin 2do RACT");
                        setExDat(sheet, currow, 10, "% Avance 3er reporte");
                        setExDat(sheet, currow, 11, "Fecha de elaboracin 3er RACT");

                        //autosize para la columna
                        if (autotam) {
                            sheet.autoSizeColumn(2);
                            sheet.autoSizeColumn(4);
                            sheet.autoSizeColumn(11);
                            autotam = false;
                        }

                        // para formatear toda la linea
                        for (int i = 1; i <= 11; i++) {
                            //tenemos qu aajustar texto
                            //tenemos que centrar el texto
                            //cambiar el color de fondo
                            setStyleCell(sheet, headerTabla, currow, i);
                        }

                        currow++;
                        //List<Unidadaprendizaje> unidadesAprendisaje = filtrosBeanHelper.getConsultaDelegate().getUnidadByArea(areaCon.getAcoclave());

                        //de ls listaAux separamos los los reportes que correspondan a la unidad de aprendisaje acutal
                        ArrayList<ReporteAvanceAux> tempListAux = new ArrayList<ReporteAvanceAux>();
                        for (ReporteAvanceAux aux : listaAux) {
                            if (aux.getAreaConocimiento().getAcoclave() == areaCon.getAcoclave()
                                    && programa.getPedclave() == aux.getReporteAvance()
                                            .getUnidadaprendizajeImparteProfesor().getGrupo().getPlanestudio()
                                            .getProgramaeducativo().getPedclave()) {
                                tempListAux.add(aux);
                            }
                        }

                        //List<UnidadaprendizajeImparteProfesor> unidadesProfesor  = filtrosBeanHelper.getConsultaDelegate().getUnidadesAprendisajeImparteProf(unidadApren.getUapid());
                        int uniprofeTemp = 0;
                        for (ReporteAvanceAux auxRacs : tempListAux) {

                            String nompreP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getPronombre();
                            String apellidoPP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoPaterno();
                            String apellidoPM = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoMaterno();
                            int claveUnidadApren = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapclave();
                            String nombreUnidad = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                    .getUapnombre();

                            uniprofeTemp = claveUnidadApren;
                            setExDat(sheet, currow, 1, claveUnidadApren); //clave
                            setExDat(sheet, currow, 2, nombreUnidad); //nombre unidad
                            //reporteAvance.unidadaprendizajeImparteProfesor.profesor.pronumeroEmpleado
                            setExDat(sheet, currow, 3,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                            .getProfesor().getPronumeroEmpleado()); //numero empleado
                            setExDat(sheet, currow, 4, apellidoPP + " " + apellidoPM + " " + nompreP); //nombre maestro
                            setExDat(sheet, currow, 5,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getGponumero()
                                            + "-"
                                            + auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                                    .getUiptipoSubgrupo()
                                            + "-" + auxRacs.getReporteAvance()
                                                    .getUnidadaprendizajeImparteProfesor().getUipsubgrupo()); //grupo numero

                            //marcamos bordes
                            for (int i = 1; i <= 5; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }
                            //tienne que ser entregados/enviados
                            if (auxRacs.getStatusRact1() != null) {
                                if (auxRacs.getStatusRact1().equalsIgnoreCase("Enviado")) {
                                    System.out.println("Entro a enviados 1");
                                    setExDat(sheet, currow, (4 + (1 * 2)), auxRacs.getPorcentAvanceRact1()); //% avance 7**
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1),
                                            auxRacs.getFechaElaboracRact1().toString()); //fecha elabora 8***
                                    setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                    setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));
                                } else {
                                    setExDat(sheet, currow, (4 + (1 * 2)), " "); //% avance 7**
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                    setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                    setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));
                                }
                            } else {
                                setExDat(sheet, currow, (4 + (1 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact2() != null) {
                                if (auxRacs.getStatusRact2().equalsIgnoreCase("Enviado")) {
                                    setExDat(sheet, currow, (4 + (2 * 2)), auxRacs.getPorcentAvanceRact2()); //% avance 7**
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1),
                                            auxRacs.getFechaElaboracRact2().toString()); //fecha elabora 8***
                                    setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                    setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));
                                } else {
                                    setExDat(sheet, currow, (4 + (2 * 2)), " "); //% avance 7**
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                    setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                    setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));
                                }
                            } else {
                                setExDat(sheet, currow, (4 + (2 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact3() != null) {
                                if (auxRacs.getStatusRact3().equalsIgnoreCase("Enviado")) {
                                    setExDat(sheet, currow, (4 + (3 * 2)), auxRacs.getPorcentAvanceRact3()); //% avance 7**
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1),
                                            auxRacs.getFechaElaboracRact3().toString()); //fecha elabora 8***
                                    setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                    setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));
                                } else {
                                    setExDat(sheet, currow, (4 + (3 * 2)), " "); //% avance 7**
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                    setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                    setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));
                                }
                            } else {
                                setExDat(sheet, currow, (4 + (3 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));
                            }

                            currow++;
                        }

                        currow += 2;
                    }

                    //aqui modifique Jesus Ruelas  - Entregados
                    //aqui cambie
                    headerTabla.setWrapText(true);
                    //aqui cambie

                    //aqui cambie jesus ruelas

                    //for(int i=0;i<28;i++){
                    //                 sheet.autoSizeColumn(1);
                    //                 sheet.autoSizeColumn(2);
                    //                 sheet.autoSizeColumn(3);
                    //                 sheet.autoSizeColumn(4);

                    //merge cells de Total de RACT General de + ProgEd
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,1,5));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,7,11));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,13,17));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,19,23));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,25,29));

                    //}
                    //aqui cambie jesus ruelas

                    //mostraremos tabla con
                    // Programas educativos //  Total Racs entregados // Total Esperados
                    //preparamos informacion para insertar
                    //         List<Programaeducativo> programasByUnidad = getProgramasByUnidad();
                    List<Planestudio> planesByPrograma = getPlanesByPrograma();
                    int UACid = 1;
                    ArrayList<String> listaProgEdContar = esperadosDelegate.getSemadoroProgEdValor(UACid);

                    //setCellStyle(style); 

                    //setExDat(sheet, 7, 1, "Concentrado de Reporte de Avance de Contenido Temtico General  por Programa Educativo");

                    //imrpiimiremos la tabla
                    // Definimos los encabezados de la tabla

                    int pos = 0;

                    int row = currow + 4;
                    int col = 1;

                    Boolean bandPe = false;

                    //for (Programaeducativo pe : programasByUnidad) {
                    for (String peContar : listaProgEdContar) {

                        String[] contarEntEspProgEd;

                        if (listaProgEdContar.size() >= pos) {
                            if (peContar.contains(programa.getPednombre())) {

                                contarEntEspProgEd = listaProgEdContar.get(pos).split("-");

                                setExDat(sheet, row, col, "Clave");
                                setExDat(sheet, row, col + 1, "Programa Educativo");
                                setExDat(sheet, row, col + 3, "Plan de Estudios");
                                setExDat(sheet, row, col + 4, "Responsable");

                                //    if (contarEntEspProgEd[0].equalsIgnoreCase(programasByUnidad.get(0).getPednombre())) {

                                setExDat(sheet, row + 1, col, programa.getPedclave());
                                setExDat(sheet, row + 1, col + 1, programa.getPednombre());
                                if (!(planesByPrograma.isEmpty())) {
                                    setExDat(sheet, row + 1, col + 2,
                                            planesByPrograma.get(0).getPesvigenciaPlan());
                                }
                                setExDat(sheet, row + 1, col + 3, "");

                                //   }

                                //                  sheet.addMergedRegion(new CellRangeAddress(row+2,col,5,1));
                                setExDat(sheet, row + 2, col,
                                        "Total de RACT General de " + programa.getPednombre());

                                setExDat(sheet, row + 3, col, "Resumen de totales \r\n por numero de RACT");
                                setExDat(sheet, row + 3, col + 1, "Total entregados");
                                setExDat(sheet, row + 3, col + 2, "%");
                                setExDat(sheet, row + 3, col + 3, "Total esperados");
                                setExDat(sheet, row + 3, col + 4, "%");

                                sheet.getRow(row + 3).getCell(1);//aqui modifique jesus ruelas

                                float porcentEnt = (Float.parseFloat(contarEntEspProgEd[1]))
                                        / (Float.parseFloat(contarEntEspProgEd[2])) * 100;

                                float porcentEsp = 100 - porcentEnt;

                                //                setExDat(sheet, 15, 1, "Todos los RACTS");
                                //                setExDat(sheet, 15, 2, contarEntEspProgEd[1]);
                                //                setExDat(sheet, 15, 3, "" + porcentEnt + "%");
                                //                setExDat(sheet, 15, 4, contarEntEspProgEd[2]);
                                //                setExDat(sheet, 15, 5, ""  + porcentEsp + "%");
                                //String[] contarEntEspProgEd;
                                String[] contarEntRact1;
                                String[] contarEntRact2;
                                String[] contarEntRact3;
                                int esperadosProgEdUnicoRact = 0;

                                contarEntRact1 = contarEntEspProgEd[3].split(":");
                                contarEntRact2 = contarEntEspProgEd[4].split(":");
                                contarEntRact3 = contarEntEspProgEd[5].split(":");

                                esperadosProgEdUnicoRact = (Integer.parseInt(contarEntEspProgEd[2])) / 3;

                                float contarPorcentEntRact1 = (Float.parseFloat(contarEntRact1[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentEntRact2 = (Float.parseFloat(contarEntRact2[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentEntRact3 = (Float.parseFloat(contarEntRact3[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;

                                float contarPorcentEspRact1 = 100 - contarPorcentEntRact1;
                                float contarPorcentEspRact2 = 100 - contarPorcentEntRact2;
                                float contarPorcentEspRact3 = 100 - contarPorcentEntRact3;

                                setExDat(sheet, row + 4, col, "RACT 1");
                                setExDat(sheet, row + 4, col + 1, contarEntRact1[1]);
                                setExDat(sheet, row + 4, col + 2, "" + contarPorcentEntRact1 + "%");
                                setExDat(sheet, row + 4, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 4, col + 4, "" + contarPorcentEspRact1 + "%");

                                setExDat(sheet, row + 5, col, "RACT 2");
                                setExDat(sheet, row + 5, col + 1, contarEntRact2[1]);
                                setExDat(sheet, row + 5, col + 2, "" + contarPorcentEntRact2 + "%");
                                setExDat(sheet, row + 5, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 5, col + 4, "" + contarPorcentEspRact2 + "%");

                                setExDat(sheet, row + 6, col, "RACT 3");
                                setExDat(sheet, row + 6, col + 1, contarEntRact3[1]);
                                setExDat(sheet, row + 6, col + 2, "" + contarPorcentEntRact3 + "%");
                                setExDat(sheet, row + 6, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 6, col + 4, "" + contarPorcentEspRact3 + "%");

                                setExDat(sheet, row + 7, col, "Todos los RACTS");
                                setExDat(sheet, row + 7, col + 1, contarEntEspProgEd[1]);
                                setExDat(sheet, row + 7, col + 2, "" + porcentEnt + "%");
                                setExDat(sheet, row + 7, col + 3, contarEntEspProgEd[2]);
                                setExDat(sheet, row + 7, col + 4, "" + porcentEsp + "%");

                                setStyleCell(sheet, headerTabla, row, col);
                                setStyleCell(sheet, headerTabla, row, col + 1);
                                setStyleCell(sheet, headerTabla, row, col + 2);
                                setStyleCell(sheet, headerTabla, row, col + 3);
                                setStyleCell(sheet, headerTabla, row, col + 4);

                                setStyleCell(sheet, headerTabla, row + 2, col);
                                setStyleCell(sheet, headerTabla, row + 2, col + 1);
                                setStyleCell(sheet, headerTabla, row + 2, col + 2);
                                setStyleCell(sheet, headerTabla, row + 2, col + 3);

                                setStyleCell(sheet, headerTabla, row + 3, col);
                                setStyleCell(sheet, headerTabla, row + 3, col + 1);
                                setStyleCell(sheet, headerTabla, row + 3, col + 2);
                                setStyleCell(sheet, headerTabla, row + 3, col + 3);
                                setStyleCell(sheet, headerTabla, row + 3, col + 4);

                                bandPe = true;

                                pos++;
                            }

                        }
                        //               if (bandPe == true) {
                        //                   if (col >= 25) {
                        //                       row = row + 14;
                        //                       col = -5;
                        //                   }
                        //                   col = col + 6;
                        //                   bandPe = false;
                        //               }
                        pos++;
                    }
                    //}
                    //aqui modifique Jesus Ruelas

                    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
                } // fin del la comparacon de plan
            } // fin del for por plan de estudios

        } // fin de si es por entregados if(entregados)

        if (reporte.equalsIgnoreCase("noentregados")) {
            nombreLibro = "No Entregados " + nombreLibro;

            //definimos encabezado
            sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);

            //mostraremos tabla con
            // Programas educativos //  Total Racs entregados // Total Esperados
            //preparamos informacion para insertar
            List<Programaeducativo> programasByUnidad = getProgramasByUnidad();

            //imrpiimiremos la tabla
            // Definimos los encabezados de la tabla
            setExDat(sheet, 13, 17, "Programa Educativo");
            setExDat(sheet, 13, 18, "Total de RACT Entregados");
            setExDat(sheet, 13, 19, "Total de RACT Esperados");
            setExDat(sheet, 13, 20, " ");

            setStyleCell(sheet, headerTabla, 13, 17);
            setStyleCell(sheet, headerTabla, 13, 18);
            setStyleCell(sheet, headerTabla, 13, 19);

            //imprimimos la informacion en su lugar

            int prow = 14;
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(programa.getPedid().toString())) {
                    setExDat(sheet, prow, 17, programa.getPednombre());
                    setExDat(sheet, prow, 18, 75);
                    setExDat(sheet, prow, 19, 100);
                    prow++;
                }
            }
            //Se obtiene consulta con los parametros seleccionados
            ArrayList<String> entregados = esperadosDelegate.getFullProgramaEdu(unidadacademica.getUacid(),
                    Plan, Programa, Ciclo);

            //agregamos programacion de grafico
            if (tipografico.equalsIgnoreCase("barras")) {
                BarChartCL demo1 = new BarChartCL("Estadsticas de Reportes Entregados por Programa Educativo",
                        entregados, "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("linea")) {
                LineChartDemo1 demo1 = new LineChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("pastel")) {
                PieChartDemo1 demo1 = new PieChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }

            //Se acaba grafico
            //recorreremos todo el list aux para revisar los programas educativos que utiliza
            //aun que podemos usar el selectProgramaeducativo

            /* Programacion de Hojas*/
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(Integer.toString(programa.getPedclave()))) {
                    sheet = workbook.createSheet(programa.getPednombre());
                    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
                    setExDat(sheet, 8, 3,
                            "Concentrado de Reporte de Avance de Contenido Temtico de Entregados por Programa Educativo");

                    boolean autotam = true;
                    //informacion de programa educativo tabla
                    setExDat(sheet, 14, 1, "Clave");
                    setExDat(sheet, 14, 2, "Programa Educativo");
                    setExDat(sheet, 14, 3, "Plan de Estudios");
                    setExDat(sheet, 14, 4, "Responsable");

                    setStyleCell(sheet, headerTabla, 14, 1);
                    setStyleCell(sheet, headerTabla, 14, 2);
                    setStyleCell(sheet, headerTabla, 14, 3);
                    setStyleCell(sheet, headerTabla, 14, 4);

                    //llenado de informacion
                    // se tiene imprimir por cada plan de estudios???

                    setExDat(sheet, 15, 1, programa.getPedclave());
                    setExDat(sheet, 15, 2, programa.getPednombre());
                    setExDat(sheet, 15, 3, "");
                    setExDat(sheet, 15, 4, "");
                    setStyleCell(sheet, borderstabla, 15, 1);
                    setStyleCell(sheet, borderstabla, 15, 2);
                    setStyleCell(sheet, borderstabla, 15, 3);
                    setStyleCell(sheet, borderstabla, 15, 4);

                    List<Planestudio> planes = filtrosBeanHelper.getConsultaDelegate()
                            .getPlanesByPrograma(programa.getPedid());
                    boolean uno = true;
                    int currow = 20;

                    ReporteAvanceAux tempAux = new ReporteAvanceAux();
                    for (ReporteAvanceAux aux : listaAux) {
                        tempAux = aux;
                        break;
                    }

                    //intentaremos usar un solo plan
                    setExDat(sheet, currow, 1, "?reas de conocimiento");
                    setStyleCell(sheet, headerTabla, currow, 1);
                    currow++;
                    //cada plan de estudios tiene varias areas de conocimiento
                    //List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate().getAreasByPlan( tempAux.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo().getPlanestudio().getPesid() );
                    List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate()
                            .getAreasByPlanClave(programa.getPedclave(),
                                    tempAux.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getPlanestudio().getPesvigenciaPlan());
                    for (Areaconocimiento areaCon : areasConocimiento) {
                        //clave , area de conocimiento, responsable
                        setExDat(sheet, currow, 1, "Clave");
                        setExDat(sheet, currow, 2, "?rea de conocimiento");
                        setExDat(sheet, currow, 3, "Responsable");
                        setStyleCell(sheet, headerTabla, currow, 1);
                        setStyleCell(sheet, headerTabla, currow, 2);
                        setStyleCell(sheet, headerTabla, currow, 3);

                        currow++;
                        setExDat(sheet, currow, 1, areaCon.getAcoclave()); //clave
                        setExDat(sheet, currow, 2, areaCon.getAconombre()); //area conociminto
                        setExDat(sheet, currow, 3, ""); //responsable

                        currow += 2;
                        //obtenemos las unidades de aprendisake
                        setExDat(sheet, currow, 1, "Clave unidad de aprendizaje");
                        setExDat(sheet, currow, 2, "Unidad de aprendizaje");
                        setExDat(sheet, currow, 3, "No. de empleado");
                        setExDat(sheet, currow, 4, "Nombre del profesor");
                        setExDat(sheet, currow, 5, "Grupo");
                        setExDat(sheet, currow, 6, "% Avance 1er reporte");
                        setExDat(sheet, currow, 7, "Fecha de elaboracin 1er RACT");
                        setExDat(sheet, currow, 8, "% Avance 2do reporte");
                        setExDat(sheet, currow, 9, "Fecha de elaboracin 2do RACT");
                        setExDat(sheet, currow, 10, "% Avance 3er reporte");
                        setExDat(sheet, currow, 11, "Fecha de elaboracin 3er RACT");
                        //autosize para la columna
                        if (autotam) {
                            sheet.autoSizeColumn(2);
                            sheet.autoSizeColumn(4);
                            sheet.autoSizeColumn(11);
                            autotam = false;
                        }
                        // para formatear toda la linea
                        for (int i = 1; i <= 11; i++) {
                            //tenemos qu aajustar texto
                            //tenemos que centrar el texto
                            //cambiar el color de fondo
                            setStyleCell(sheet, headerTabla, currow, i);
                        }

                        currow++;
                        //List<Unidadaprendizaje> unidadesAprendisaje = filtrosBeanHelper.getConsultaDelegate().getUnidadByArea(areaCon.getAcoclave());

                        //de ls listaAux separamos los los reportes que correspondan a la unidad de aprendisaje acutal
                        ArrayList<ReporteAvanceAux> tempListAux = new ArrayList<ReporteAvanceAux>();
                        for (ReporteAvanceAux aux : listaAux) {
                            if (aux.getAreaConocimiento() != null
                                    && aux.getAreaConocimiento().getAcoclave() == areaCon.getAcoclave()
                                    && programa.getPedclave() == aux.getReporteAvance()
                                            .getUnidadaprendizajeImparteProfesor().getGrupo().getPlanestudio()
                                            .getProgramaeducativo().getPedclave()) {
                                tempListAux.add(aux);
                            }
                        }

                        //List<UnidadaprendizajeImparteProfesor> unidadesProfesor  = filtrosBeanHelper.getConsultaDelegate().getUnidadesAprendisajeImparteProf(unidadApren.getUapid());
                        int uniprofeTemp = 0;
                        for (ReporteAvanceAux auxRacs : tempListAux) {

                            String nompreP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getPronombre();
                            String apellidoPP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoPaterno();
                            String apellidoPM = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoMaterno();
                            int claveUnidadApren = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapclave();
                            String nombreUnidad = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                    .getUapnombre();

                            uniprofeTemp = claveUnidadApren;
                            setExDat(sheet, currow, 1, claveUnidadApren); //clave
                            setExDat(sheet, currow, 2, nombreUnidad); //nombre unidad
                            //reporteAvance.unidadaprendizajeImparteProfesor.profesor.pronumeroEmpleado
                            setExDat(sheet, currow, 3,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                            .getProfesor().getPronumeroEmpleado()); //numero empleado
                            setExDat(sheet, currow, 4, apellidoPP + " " + apellidoPM + " " + nompreP); //nombre maestro
                            setExDat(sheet, currow, 5,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getGponumero()
                                            + "-"
                                            + auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                                    .getUiptipoSubgrupo()
                                            + "-" + auxRacs.getReporteAvance()
                                                    .getUnidadaprendizajeImparteProfesor().getUipsubgrupo()); //grupo numero

                            //marcamos bordes
                            for (int i = 6; i <= 11; i++) {
                                setExDat(sheet, currow, i, " ");
                            }
                            for (int i = 1; i <= 11; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }

                            //hasta aqui comente Jesus Ruelas - 4 nov 2015
                            //                                        //tienne que ser entregados/enviados
                            //                                        if(auxRacs.getStatusRact1()!=null){
                            //                                            
                            //                                            System.out.println("Entro a enviados 1");
                            //                                            setExDat(sheet, currow,(4 + (1*2)), auxRacs.getPorcentAvanceRact1() ); //% avance 7**
                            //                                            setExDat(sheet, currow,(4 + (1*2)+1), auxRacs.getFechaElaboracRact1().toString() ); //fecha elabora 8***
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (1*2)));
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (1*2)+1));
                            //                                            
                            //                                        }
                            //                                        else{
                            //                                            setExDat(sheet, currow,(4 + (1*2)), " " ); //% avance 7**
                            //                                            setExDat(sheet, currow,(4 + (1*2)+1), " " ); //fecha elabora 8***
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (1*2)));
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (1*2)+1));
                            //                                        }
                            //                                        
                            //                                        
                            //                                        if(auxRacs.getStatusRact2()!=null){
                            //                                           
                            //                                            setExDat(sheet, currow,(4 + (2*2)), auxRacs.getPorcentAvanceRact2() ); //% avance 7**
                            //                                            setExDat(sheet, currow,(4 + (2*2)+1), auxRacs.getFechaElaboracRact2().toString() ); //fecha elabora 8***
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (2*2)));
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (2*2)+1));
                            //                                            
                            //                                        }else{
                            //                                            setExDat(sheet, currow,(4 + (2*2)), " " ); //% avance 7**
                            //                                            setExDat(sheet, currow,(4 + (2*2)+1), " " ); //fecha elabora 8***
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (2*2)));
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (2*2)+1));
                            //                                        }
                            //                                        
                            //                                        if(auxRacs.getStatusRact3()!=null){
                            //                                            setExDat(sheet, currow,(4 + (3*2)), auxRacs.getPorcentAvanceRact3() ); //% avance 7**
                            //                                            setExDat(sheet, currow,(4 + (3*2)+1), auxRacs.getFechaElaboracRact3().toString() ); //fecha elabora 8***
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (3*2)));
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (3*2)+1));
                            //                                        }
                            //                                        else{
                            //                                            setExDat(sheet, currow,(4 + (3*2)), " "  ); //% avance 7**
                            //                                            setExDat(sheet, currow,(4 + (3*2)+1), " " ); //fecha elabora 8***
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (3*2)));
                            //                                            setStyleCell(sheet, borderstabla, currow, (4 + (3*2)+1));   
                            //                                        }
                            //hasta aqui comente Jesus Ruelas - 4 nov 2015

                            //tienne que ser entregados/enviados
                            if (auxRacs.getStatusRact1() != null) {

                                System.out.println("Entro a enviados 1");
                                setExDat(sheet, currow, (4 + (1 * 2)), auxRacs.getPorcentAvanceRact1()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact1() != null) {
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1),
                                            auxRacs.getFechaElaboracRact1().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (1 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact2() != null) {

                                setExDat(sheet, currow, (4 + (2 * 2)), auxRacs.getPorcentAvanceRact2()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact2() != null) {
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1),
                                            auxRacs.getFechaElaboracRact2().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (2 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact3() != null) {

                                setExDat(sheet, currow, (4 + (3 * 2)), auxRacs.getPorcentAvanceRact3()); //% avance 7**
                                if (auxRacs.getFechaElaboracRact3() != null) {
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1),
                                            auxRacs.getFechaElaboracRact3().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (3 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));
                            }

                            currow++;
                        }

                        currow += 2;
                    }

                    //aqui modifique Jesus Ruelas  - No entregados
                    //aqui cambie
                    headerTabla.setWrapText(true);
                    //aqui cambie

                    //aqui cambie jesus ruelas

                    //for(int i=0;i<28;i++){
                    //                 sheet.autoSizeColumn(1);
                    //                 sheet.autoSizeColumn(2);
                    //                 sheet.autoSizeColumn(3);
                    //                 sheet.autoSizeColumn(4);

                    //merge cells de Total de RACT General de + ProgEd
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,1,5));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,7,11));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,13,17));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,19,23));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,25,29));

                    //}
                    //aqui cambie jesus ruelas

                    //mostraremos tabla con
                    // Programas educativos //  Total Racs entregados // Total Esperados
                    //preparamos informacion para insertar
                    //         List<Programaeducativo> programasByUnidad = getProgramasByUnidad();
                    List<Planestudio> planesByPrograma = getPlanesByPrograma();
                    int UACid = 1;
                    ArrayList<String> listaProgEdContar = esperadosDelegate.getSemadoroProgEdValor(UACid);

                    //setCellStyle(style); 

                    //setExDat(sheet, 7, 1, "Concentrado de Reporte de Avance de Contenido Temtico General  por Programa Educativo");

                    //imrpiimiremos la tabla
                    // Definimos los encabezados de la tabla

                    int pos = 0;

                    int row = currow + 4;
                    int col = 1;

                    Boolean bandPe = false;

                    //for (Programaeducativo pe : programasByUnidad) {
                    for (String peContar : listaProgEdContar) {

                        String[] contarEntEspProgEd;

                        if (listaProgEdContar.size() >= pos) {
                            if (peContar.contains(programa.getPednombre())) {

                                contarEntEspProgEd = listaProgEdContar.get(pos).split("-");

                                setExDat(sheet, row, col, "Clave");
                                setExDat(sheet, row, col + 1, "Programa Educativo");
                                setExDat(sheet, row, col + 3, "Plan de Estudios");
                                setExDat(sheet, row, col + 4, "Responsable");

                                //    if (contarEntEspProgEd[0].equalsIgnoreCase(programasByUnidad.get(0).getPednombre())) {

                                setExDat(sheet, row + 1, col, programa.getPedclave());
                                setExDat(sheet, row + 1, col + 1, programa.getPednombre());
                                if (!(planesByPrograma.isEmpty())) {
                                    setExDat(sheet, row + 1, col + 2,
                                            planesByPrograma.get(0).getPesvigenciaPlan());
                                }
                                setExDat(sheet, row + 1, col + 3, "");

                                //   }

                                //                  sheet.addMergedRegion(new CellRangeAddress(row+2,col,5,1));
                                setExDat(sheet, row + 2, col,
                                        "Total de RACT General de " + programa.getPednombre());

                                setExDat(sheet, row + 3, col, "Resumen de totales \r\n por numero de RACT");
                                setExDat(sheet, row + 3, col + 1, "Total no entregados");
                                setExDat(sheet, row + 3, col + 2, "%");
                                setExDat(sheet, row + 3, col + 3, "Total esperados");
                                setExDat(sheet, row + 3, col + 4, "%");

                                sheet.getRow(row + 3).getCell(1);//aqui modifique jesus ruelas

                                float porcentEnt = (Float.parseFloat(contarEntEspProgEd[1]))
                                        / (Float.parseFloat(contarEntEspProgEd[2])) * 100;

                                float porcentNoEnt = ((Float.parseFloat(contarEntEspProgEd[2]))
                                        - (Float.parseFloat(contarEntEspProgEd[1])))
                                        / (Float.parseFloat(contarEntEspProgEd[2])) * 100;

                                float porcentEsp = 100 - porcentEnt;

                                //                setExDat(sheet, 15, 1, "Todos los RACTS");
                                //                setExDat(sheet, 15, 2, contarEntEspProgEd[1]);
                                //                setExDat(sheet, 15, 3, "" + porcentEnt + "%");
                                //                setExDat(sheet, 15, 4, contarEntEspProgEd[2]);
                                //                setExDat(sheet, 15, 5, ""  + porcentEsp + "%");
                                //String[] contarEntEspProgEd;
                                String[] contarEntRact1;
                                String[] contarEntRact2;
                                String[] contarEntRact3;
                                int esperadosProgEdUnicoRact = 0;

                                contarEntRact1 = contarEntEspProgEd[3].split(":");
                                contarEntRact2 = contarEntEspProgEd[4].split(":");
                                contarEntRact3 = contarEntEspProgEd[5].split(":");

                                esperadosProgEdUnicoRact = (Integer.parseInt(contarEntEspProgEd[2])) / 3;

                                int contarNoEntRact1 = esperadosProgEdUnicoRact
                                        - (Integer.parseInt(contarEntRact1[1]));
                                int contarNoEntRact2 = esperadosProgEdUnicoRact
                                        - (Integer.parseInt(contarEntRact2[1]));
                                int contarNoEntRact3 = esperadosProgEdUnicoRact
                                        - (Integer.parseInt(contarEntRact3[1]));

                                float contarPorcentEntRact1 = (Float.parseFloat(contarEntRact1[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentEntRact2 = (Float.parseFloat(contarEntRact2[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentEntRact3 = (Float.parseFloat(contarEntRact3[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;

                                float contarPorcentNoEntRact1 = (((float) esperadosProgEdUnicoRact)
                                        - (Float.parseFloat(contarEntRact1[1])))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentNoEntRact2 = (((float) esperadosProgEdUnicoRact)
                                        - (Float.parseFloat(contarEntRact2[1])))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentNoEntRact3 = (((float) esperadosProgEdUnicoRact)
                                        - (Float.parseFloat(contarEntRact3[1])))
                                        / ((float) esperadosProgEdUnicoRact) * 100;

                                float contarPorcentEspRact1 = 100 - contarPorcentEntRact1;
                                float contarPorcentEspRact2 = 100 - contarPorcentEntRact2;
                                float contarPorcentEspRact3 = 100 - contarPorcentEntRact3;

                                setExDat(sheet, row + 4, col, "RACT 1");
                                setExDat(sheet, row + 4, col + 1, contarNoEntRact1);
                                setExDat(sheet, row + 4, col + 2, "" + contarPorcentNoEntRact1 + "%");
                                setExDat(sheet, row + 4, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 4, col + 4, "" + contarPorcentEspRact1 + "%");

                                setExDat(sheet, row + 5, col, "RACT 2");
                                setExDat(sheet, row + 5, col + 1, contarNoEntRact2);
                                setExDat(sheet, row + 5, col + 2, "" + contarPorcentNoEntRact2 + "%");
                                setExDat(sheet, row + 5, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 5, col + 4, "" + contarPorcentEspRact2 + "%");

                                setExDat(sheet, row + 6, col, "RACT 3");
                                setExDat(sheet, row + 6, col + 1, contarNoEntRact3);
                                setExDat(sheet, row + 6, col + 2, "" + contarPorcentNoEntRact3 + "%");
                                setExDat(sheet, row + 6, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 6, col + 4, "" + contarPorcentEspRact3 + "%");

                                int totalNoEnt = (Integer.parseInt(contarEntEspProgEd[2])
                                        - (Integer.parseInt(contarEntEspProgEd[1])));

                                setExDat(sheet, row + 7, col, "Todos los RACTS");
                                setExDat(sheet, row + 7, col + 1, "" + (Integer.parseInt(contarEntEspProgEd[2])
                                        - (Integer.parseInt(contarEntEspProgEd[1]))));
                                setExDat(sheet, row + 7, col + 2, "" + porcentNoEnt + "%");
                                setExDat(sheet, row + 7, col + 3, contarEntEspProgEd[2]);
                                setExDat(sheet, row + 7, col + 4, "" + porcentEsp + "%");

                                setStyleCell(sheet, headerTabla, row, col);
                                setStyleCell(sheet, headerTabla, row, col + 1);
                                setStyleCell(sheet, headerTabla, row, col + 2);
                                setStyleCell(sheet, headerTabla, row, col + 3);
                                setStyleCell(sheet, headerTabla, row, col + 4);

                                setStyleCell(sheet, headerTabla, row + 2, col);
                                setStyleCell(sheet, headerTabla, row + 2, col + 1);
                                setStyleCell(sheet, headerTabla, row + 2, col + 2);
                                setStyleCell(sheet, headerTabla, row + 2, col + 3);

                                setStyleCell(sheet, headerTabla, row + 3, col);
                                setStyleCell(sheet, headerTabla, row + 3, col + 1);
                                setStyleCell(sheet, headerTabla, row + 3, col + 2);
                                setStyleCell(sheet, headerTabla, row + 3, col + 3);
                                setStyleCell(sheet, headerTabla, row + 3, col + 4);

                                bandPe = true;

                                pos++;
                            }

                        }
                        //               if (bandPe == true) {
                        //                   if (col >= 25) {
                        //                       row = row + 14;
                        //                       col = -5;
                        //                   }
                        //                   col = col + 6;
                        //                   bandPe = false;
                        //               }
                        pos++;
                    }
                    //}
                    //aqui modifique Jesus Ruelas                                     

                } // fin del la comparacon de plan
            } // fin del for por plan de estudios

        } // fin de si es por entregados if(entregados)

        if (reporte.equalsIgnoreCase("entregadosynoentregados")) {
            nombreLibro = "Entregados y No Entregados " + nombreLibro;

            //definimos encabezado
            sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);

            //mostraremos tabla con
            // Programas educativos //  Total Racs entregados // Total Esperados
            //preparamos informacion para insertar
            List<Programaeducativo> programasByUnidad = getProgramasByUnidad();

            //imrpiimiremos la tabla
            // Definimos los encabezados de la tabla
            setExDat(sheet, 13, 17, "Programa Educativo");
            setExDat(sheet, 13, 18, "Total de RACT Entregados");
            setExDat(sheet, 13, 19, "Total de RACT Esperados");
            setExDat(sheet, 13, 20, " ");

            setStyleCell(sheet, headerTabla, 13, 17);
            setStyleCell(sheet, headerTabla, 13, 18);
            setStyleCell(sheet, headerTabla, 13, 19);

            /*sheet.autoSizeColumn(2);
            sheet.autoSizeColumn(3);
            sheet.autoSizeColumn(4);*/

            //imprimimos la informacion en su lugar

            int prow = 14;
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(programa.getPedid().toString())) {
                    setExDat(sheet, prow, 17, programa.getPednombre());
                    setExDat(sheet, prow, 18, 75);
                    setExDat(sheet, prow, 19, 100);
                    prow++;
                }
            }
            //Se obtiene consulta con los parametros seleccionados
            ArrayList<String> entregados = esperadosDelegate.getFullProgramaEdu(unidadacademica.getUacid(),
                    Plan, Programa, Ciclo);

            //agregamos programacion de grafico
            if (tipografico.equalsIgnoreCase("barras")) {
                BarChartCL demo1 = new BarChartCL("Estadsticas de Reportes Entregados por Programa Educativo",
                        entregados, "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("linea")) {
                LineChartDemo1 demo1 = new LineChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("pastel")) {
                PieChartDemo1 demo1 = new PieChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }

            //Se acaba grafico
            //recorreremos todo el list aux para revisar los programas educativos que utiliza
            //aun que podemos usar el selectProgramaeducativo

            /* Programacion de Hojas*/
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(Integer.toString(programa.getPedclave()))) {
                    sheet = workbook.createSheet(programa.getPednombre());
                    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
                    setExDat(sheet, 8, 3,
                            "Concentrado de Reporte de Avance de Contenido Temtico de Entregados por Programa Educativo");

                    boolean autotam = true;
                    //informacion de programa educativo tabla
                    setExDat(sheet, 14, 1, "Clave");
                    setExDat(sheet, 14, 2, "Programa Educativo");
                    setExDat(sheet, 14, 3, "Plan de Estudios");
                    setExDat(sheet, 14, 4, "Responsable");

                    setStyleCell(sheet, headerTabla, 14, 1);
                    setStyleCell(sheet, headerTabla, 14, 2);
                    setStyleCell(sheet, headerTabla, 14, 3);
                    setStyleCell(sheet, headerTabla, 14, 4);

                    //llenado de informacion
                    // se tiene imprimir por cada plan de estudios???

                    //                    Responsableprogramaeducativo responsable = filtrosBeanHelper.getConsultaDelegate().getResponsableProgramaEducativoByID(programa.getPedid());

                    setExDat(sheet, 15, 1, programa.getPedclave());
                    setExDat(sheet, 15, 2, programa.getPednombre());
                    setExDat(sheet, 15, 3, "");
                    setExDat(sheet, 15, 4, "");
                    setStyleCell(sheet, borderstabla, 15, 1);
                    setStyleCell(sheet, borderstabla, 15, 2);
                    setStyleCell(sheet, borderstabla, 15, 3);
                    setStyleCell(sheet, borderstabla, 15, 4);

                    List<Planestudio> planes = filtrosBeanHelper.getConsultaDelegate()
                            .getPlanesByPrograma(programa.getPedid());
                    boolean uno = true;
                    int currow = 20;

                    ReporteAvanceAux tempAux = new ReporteAvanceAux();
                    for (ReporteAvanceAux aux : listaAux) {
                        tempAux = aux;
                        break;
                    }

                    //intentaremos usar un solo plan
                    setExDat(sheet, currow, 1, "?reas de conocimiento");
                    setStyleCell(sheet, headerTabla, currow, 1);
                    currow++;
                    //cada plan de estudios tiene varias areas de conocimiento
                    //List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate().getAreasByPlan( tempAux.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo().getPlanestudio().getPesid() );
                    List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate()
                            .getAreasByPlanClave(programa.getPedclave(),
                                    tempAux.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getPlanestudio().getPesvigenciaPlan());

                    for (Areaconocimiento areaCon : areasConocimiento) {
                        //clave , area de conocimiento, responsable
                        setExDat(sheet, currow, 1, "Clave");
                        setExDat(sheet, currow, 2, "?rea de conocimiento");
                        setExDat(sheet, currow, 3, "Responsable");
                        setStyleCell(sheet, headerTabla, currow, 1);
                        setStyleCell(sheet, headerTabla, currow, 2);
                        setStyleCell(sheet, headerTabla, currow, 3);

                        currow++;
                        setExDat(sheet, currow, 1, areaCon.getAcoclave()); //clave
                        setExDat(sheet, currow, 2, areaCon.getAconombre()); //area conociminto
                        setExDat(sheet, currow, 3, ""); //responsable

                        currow += 2;
                        //obtenemos las unidades de aprendisake
                        setExDat(sheet, currow, 1, "Clave unidad de aprendizaje");
                        setExDat(sheet, currow, 2, "Unidad de aprendizaje");
                        setExDat(sheet, currow, 3, "No. de empleado");
                        setExDat(sheet, currow, 4, "Nombre del profesor");
                        setExDat(sheet, currow, 5, "Grupo");
                        setExDat(sheet, currow, 6, "% Avance 1er reporte");
                        setExDat(sheet, currow, 7, "Fecha de elaboracin 1er RACT");
                        setExDat(sheet, currow, 8, "% Avance 2do reporte");
                        setExDat(sheet, currow, 9, "Fecha de elaboracin 2do RACT");
                        setExDat(sheet, currow, 10, "% Avance 3er reporte");
                        setExDat(sheet, currow, 11, "Fecha de elaboracin 3er RACT");
                        if (autotam) {
                            sheet.autoSizeColumn(2);
                            sheet.autoSizeColumn(4);
                            sheet.autoSizeColumn(11);
                            autotam = false;
                        }
                        // para formatear toda la linea
                        for (int i = 1; i <= 11; i++) {
                            //tenemos qu aajustar texto
                            //tenemos que centrar el texto
                            //cambiar el color de fondo
                            setStyleCell(sheet, headerTabla, currow, i);
                        }

                        currow++;
                        //List<Unidadaprendizaje> unidadesAprendisaje = filtrosBeanHelper.getConsultaDelegate().getUnidadByArea(areaCon.getAcoclave());

                        //de ls listaAux separamos los los reportes que correspondan a la unidad de aprendisaje acutal
                        ArrayList<ReporteAvanceAux> tempListAux = new ArrayList<ReporteAvanceAux>();
                        for (ReporteAvanceAux aux : listaAux) {
                            if (aux.getAreaConocimiento() != null
                                    && aux.getAreaConocimiento().getAcoclave() == areaCon.getAcoclave()
                                    && programa.getPedclave() == aux.getReporteAvance()
                                            .getUnidadaprendizajeImparteProfesor().getGrupo().getPlanestudio()
                                            .getProgramaeducativo().getPedclave()) {
                                tempListAux.add(aux);
                            }
                        }

                        //List<UnidadaprendizajeImparteProfesor> unidadesProfesor  = filtrosBeanHelper.getConsultaDelegate().getUnidadesAprendisajeImparteProf(unidadApren.getUapid());
                        int uniprofeTemp = 0;
                        for (ReporteAvanceAux auxRacs : tempListAux) {

                            //marcamos bordes
                            for (int i = 1; i <= 11; i++) {
                                setExDat(sheet, currow, i, " ");
                            }
                            for (int i = 1; i <= 11; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }

                            String nompreP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getPronombre();
                            String apellidoPP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoPaterno();
                            String apellidoPM = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoMaterno();
                            int claveUnidadApren = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapclave();
                            String nombreUnidad = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                    .getUapnombre();

                            uniprofeTemp = claveUnidadApren;
                            setExDat(sheet, currow, 1, claveUnidadApren); //clave
                            setExDat(sheet, currow, 2, nombreUnidad); //nombre unidad
                            //reporteAvance.unidadaprendizajeImparteProfesor.profesor.pronumeroEmpleado
                            setExDat(sheet, currow, 3,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                            .getProfesor().getPronumeroEmpleado()); //numero empleado
                            setExDat(sheet, currow, 4, apellidoPP + " " + apellidoPM + " " + nompreP); //nombre maestro
                            setExDat(sheet, currow, 5,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getGponumero()
                                            + "-"
                                            + auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                                    .getUiptipoSubgrupo()
                                            + "-" + auxRacs.getReporteAvance()
                                                    .getUnidadaprendizajeImparteProfesor().getUipsubgrupo()); //grupo numero

                            //marcamos bordes
                            for (int i = 1; i <= 5; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }
                            //tienne que ser entregados/enviados

                            setExDat(sheet, currow, (4 + (1 * 2)), auxRacs.getPorcentAvanceRact1()); //% avance 7**
                            if (auxRacs.getFechaElaboracRact1() != null) {
                                setExDat(sheet, currow, (4 + (1 * 2) + 1),
                                        auxRacs.getFechaElaboracRact1().toString()); //fecha elabora 8***
                            }
                            setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                            setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));

                            setExDat(sheet, currow, (4 + (2 * 2)), auxRacs.getPorcentAvanceRact2()); //% avance 7**
                            if (auxRacs.getFechaElaboracRact2() != null) {
                                setExDat(sheet, currow, (4 + (2 * 2) + 1),
                                        auxRacs.getFechaElaboracRact2().toString()); //fecha elabora 8***
                            }
                            setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                            setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));

                            setExDat(sheet, currow, (4 + (3 * 2)), auxRacs.getPorcentAvanceRact3()); //% avance 7**
                            if (auxRacs.getFechaElaboracRact3() != null) {
                                setExDat(sheet, currow, (4 + (3 * 2) + 1),
                                        auxRacs.getFechaElaboracRact3().toString()); //fecha elabora 8*** 
                            }
                            setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                            setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));

                            currow++;
                        }

                        currow += 2;
                    }

                    //aqui modifique Jesus Ruelas  - Entregados Y No Entregados
                    //aqui cambie
                    headerTabla.setWrapText(true);
                    //aqui cambie

                    //aqui cambie jesus ruelas

                    //for(int i=0;i<28;i++){
                    //                 sheet.autoSizeColumn(1);
                    //                 sheet.autoSizeColumn(2);
                    //                 sheet.autoSizeColumn(3);
                    //                 sheet.autoSizeColumn(4);

                    //merge cells de Total de RACT General de + ProgEd
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,1,5));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,7,11));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,13,17));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,19,23));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,25,29));

                    //}
                    //aqui cambie jesus ruelas

                    //mostraremos tabla con
                    // Programas educativos //  Total Racs entregados // Total Esperados
                    //preparamos informacion para insertar
                    //         List<Programaeducativo> programasByUnidad = getProgramasByUnidad();
                    List<Planestudio> planesByPrograma = getPlanesByPrograma();
                    int UACid = 1;
                    ArrayList<String> listaProgEdContar = esperadosDelegate.getSemadoroProgEdValor(UACid);

                    //setCellStyle(style); 

                    //setExDat(sheet, 7, 1, "Concentrado de Reporte de Avance de Contenido Temtico General  por Programa Educativo");

                    //imrpiimiremos la tabla
                    // Definimos los encabezados de la tabla

                    int pos = 0;

                    int row = currow + 4;
                    int col = 1;

                    Boolean bandPe = false;

                    //for (Programaeducativo pe : programasByUnidad) {
                    for (String peContar : listaProgEdContar) {

                        String[] contarEntEspProgEd;

                        if (listaProgEdContar.size() >= pos) {
                            if (peContar.contains(programa.getPednombre())) {

                                contarEntEspProgEd = listaProgEdContar.get(pos).split("-");

                                setExDat(sheet, row, col, "Clave");
                                setExDat(sheet, row, col + 1, "Programa Educativo");
                                setExDat(sheet, row, col + 3, "Plan de Estudios");
                                setExDat(sheet, row, col + 4, "Responsable");

                                //    if (contarEntEspProgEd[0].equalsIgnoreCase(programasByUnidad.get(0).getPednombre())) {

                                setExDat(sheet, row + 1, col, programa.getPedclave());
                                setExDat(sheet, row + 1, col + 1, programa.getPednombre());
                                if (!(planesByPrograma.isEmpty())) {
                                    setExDat(sheet, row + 1, col + 2,
                                            planesByPrograma.get(0).getPesvigenciaPlan());
                                }
                                setExDat(sheet, row + 1, col + 3, "");

                                //   }

                                //                  sheet.addMergedRegion(new CellRangeAddress(row+2,col,5,1));
                                setExDat(sheet, row + 2, col,
                                        "Total de RACT General de " + programa.getPednombre());

                                setExDat(sheet, row + 3, col, "Resumen de totales \r\n por numero de RACT");
                                setExDat(sheet, row + 3, col + 1, "Total entregados");
                                setExDat(sheet, row + 3, col + 2, "%");
                                setExDat(sheet, row + 3, col + 3, "Total esperados");
                                setExDat(sheet, row + 3, col + 4, "%");

                                sheet.getRow(row + 3).getCell(1);//aqui modifique jesus ruelas

                                float porcentEnt = (Float.parseFloat(contarEntEspProgEd[1]))
                                        / (Float.parseFloat(contarEntEspProgEd[2])) * 100;

                                float porcentEsp = 100 - porcentEnt;

                                //                setExDat(sheet, 15, 1, "Todos los RACTS");
                                //                setExDat(sheet, 15, 2, contarEntEspProgEd[1]);
                                //                setExDat(sheet, 15, 3, "" + porcentEnt + "%");
                                //                setExDat(sheet, 15, 4, contarEntEspProgEd[2]);
                                //                setExDat(sheet, 15, 5, ""  + porcentEsp + "%");
                                //String[] contarEntEspProgEd;
                                String[] contarEntRact1;
                                String[] contarEntRact2;
                                String[] contarEntRact3;
                                int esperadosProgEdUnicoRact = 0;

                                contarEntRact1 = contarEntEspProgEd[3].split(":");
                                contarEntRact2 = contarEntEspProgEd[4].split(":");
                                contarEntRact3 = contarEntEspProgEd[5].split(":");

                                esperadosProgEdUnicoRact = (Integer.parseInt(contarEntEspProgEd[2])) / 3;

                                float contarPorcentEntRact1 = (Float.parseFloat(contarEntRact1[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentEntRact2 = (Float.parseFloat(contarEntRact2[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentEntRact3 = (Float.parseFloat(contarEntRact3[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;

                                float contarPorcentEspRact1 = 100 - contarPorcentEntRact1;
                                float contarPorcentEspRact2 = 100 - contarPorcentEntRact2;
                                float contarPorcentEspRact3 = 100 - contarPorcentEntRact3;

                                setExDat(sheet, row + 4, col, "RACT 1");
                                setExDat(sheet, row + 4, col + 1, contarEntRact1[1]);
                                setExDat(sheet, row + 4, col + 2, "" + contarPorcentEntRact1 + "%");
                                setExDat(sheet, row + 4, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 4, col + 4, "" + contarPorcentEspRact1 + "%");

                                setExDat(sheet, row + 5, col, "RACT 2");
                                setExDat(sheet, row + 5, col + 1, contarEntRact2[1]);
                                setExDat(sheet, row + 5, col + 2, "" + contarPorcentEntRact2 + "%");
                                setExDat(sheet, row + 5, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 5, col + 4, "" + contarPorcentEspRact2 + "%");

                                setExDat(sheet, row + 6, col, "RACT 3");
                                setExDat(sheet, row + 6, col + 1, contarEntRact3[1]);
                                setExDat(sheet, row + 6, col + 2, "" + contarPorcentEntRact3 + "%");
                                setExDat(sheet, row + 6, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 6, col + 4, "" + contarPorcentEspRact3 + "%");

                                setExDat(sheet, row + 7, col, "Todos los RACTS");
                                setExDat(sheet, row + 7, col + 1, contarEntEspProgEd[1]);
                                setExDat(sheet, row + 7, col + 2, "" + porcentEnt + "%");
                                setExDat(sheet, row + 7, col + 3, contarEntEspProgEd[2]);
                                setExDat(sheet, row + 7, col + 4, "" + porcentEsp + "%");

                                setStyleCell(sheet, headerTabla, row, col);
                                setStyleCell(sheet, headerTabla, row, col + 1);
                                setStyleCell(sheet, headerTabla, row, col + 2);
                                setStyleCell(sheet, headerTabla, row, col + 3);
                                setStyleCell(sheet, headerTabla, row, col + 4);

                                setStyleCell(sheet, headerTabla, row + 2, col);
                                setStyleCell(sheet, headerTabla, row + 2, col + 1);
                                setStyleCell(sheet, headerTabla, row + 2, col + 2);
                                setStyleCell(sheet, headerTabla, row + 2, col + 3);

                                setStyleCell(sheet, headerTabla, row + 3, col);
                                setStyleCell(sheet, headerTabla, row + 3, col + 1);
                                setStyleCell(sheet, headerTabla, row + 3, col + 2);
                                setStyleCell(sheet, headerTabla, row + 3, col + 3);
                                setStyleCell(sheet, headerTabla, row + 3, col + 4);

                                bandPe = true;

                                pos++;
                            }

                        }
                        //               if (bandPe == true) {
                        //                   if (col >= 25) {
                        //                       row = row + 14;
                        //                       col = -5;
                        //                   }
                        //                   col = col + 6;
                        //                   bandPe = false;
                        //               }
                        pos++;
                    }
                    //}
                    //aqui modifique Jesus Ruelas                 

                } // fin del la comparacon de plan
            } // fin del for por plan de estudios

        } // fin de si es por entregados y no entregados if(entregados)

        if (reporte.equalsIgnoreCase("entregadosatiempo") || reporte.equalsIgnoreCase("entregadosenfechalimite")
                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                || reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues")) {
            if (reporte.equalsIgnoreCase("entregadosatiempo")) {
                System.out.println("Entro a entregados a tiempo");
                nombreLibro = "Entregados a Tiempo " + nombreLibro;
            }

            if (reporte.equalsIgnoreCase("entregadosenfechalimite")) {
                System.out.println("Entro a entregados en fecha");
                nombreLibro = "Entregados en Fecha Limite " + nombreLibro;
            }

            if (reporte.equalsIgnoreCase("entregadosdespueslimite")) {
                System.out.println("Entro a entregados despues");
                nombreLibro = "Entregados despues Fecha Limite" + nombreLibro;
            }

            if (reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues")) {
                System.out.println("Entro a entregados a tiempo");
                nombreLibro = "Entregados a Tiempo-Limite-Despues de Fecha " + nombreLibro;
            }

            //mostraremos tabla con
            // Programas educativos //  Total Racs entregados // Total Esperados
            //preparamos informacion para insertar
            List<Programaeducativo> programasByUnidad = getProgramasByUnidad();

            //imrpiimiremos la tabla
            // Definimos los encabezados de la tabla
            setExDat(sheet, 13, 17, "Programa Educativo");
            setExDat(sheet, 13, 18, "Total de RACT Entregados");
            setExDat(sheet, 13, 19, "Total de RACT Esperados");
            setExDat(sheet, 13, 20, " ");

            setStyleCell(sheet, headerTabla, 13, 17);
            setStyleCell(sheet, headerTabla, 13, 18);
            setStyleCell(sheet, headerTabla, 13, 19);

            /*sheet.autoSizeColumn(2);
            sheet.autoSizeColumn(3);
            sheet.autoSizeColumn(4);*/

            //imprimimos la informacion en su lugar

            int prow = 14;
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(programa.getPedid().toString())) {
                    setExDat(sheet, prow, 17, programa.getPednombre());
                    setExDat(sheet, prow, 18, 75);
                    setExDat(sheet, prow, 19, 100);
                    prow++;
                }
            }
            //Se obtiene consulta con los parametros seleccionados
            ArrayList<String> entregados = esperadosDelegate.getFullProgramaEdu(unidadacademica.getUacid(),
                    Plan, Programa, Ciclo);

            //agregamos programacion de grafico
            if (tipografico.equalsIgnoreCase("barras")) {
                BarChartCL demo1 = new BarChartCL("Estadsticas de Reportes Entregados por Programa Educativo",
                        entregados, "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("linea")) {
                LineChartDemo1 demo1 = new LineChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("pastel")) {
                PieChartDemo1 demo1 = new PieChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }

            //Se acaba grafico
            //recorreremos todo el list aux para revisar los programas educativos que utiliza
            //aun que podemos usar el selectProgramaeducativo

            /* Programacion de Hojas*/
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(Integer.toString(programa.getPedclave()))) {

                    sheet = workbook.createSheet(programa.getPednombre());
                    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
                    setExDat(sheet, 8, 3,
                            "Concentrado de Reporte de Avance de Contenido Temtico de Entregados por Programa Educativo");

                    boolean autotam = true;
                    //informacion de programa educativo tabla
                    setExDat(sheet, 14, 1, "Clave");
                    setExDat(sheet, 14, 2, "Programa Educativo");
                    setExDat(sheet, 14, 3, "Plan de Estudios");
                    setExDat(sheet, 14, 4, "Responsable");

                    setStyleCell(sheet, headerTabla, 14, 1);
                    setStyleCell(sheet, headerTabla, 14, 2);
                    setStyleCell(sheet, headerTabla, 14, 3);
                    setStyleCell(sheet, headerTabla, 14, 4);

                    //llenado de informacion
                    // se tiene imprimir por cada plan de estudios???

                    //                    Responsableprogramaeducativo responsable = filtrosBeanHelper.getConsultaDelegate().getResponsableProgramaEducativoByID(programa.getPedid());

                    setExDat(sheet, 15, 1, programa.getPedclave());
                    setExDat(sheet, 15, 2, programa.getPednombre());
                    setExDat(sheet, 15, 3, "");
                    setExDat(sheet, 15, 4, "");
                    setStyleCell(sheet, borderstabla, 15, 1);
                    setStyleCell(sheet, borderstabla, 15, 2);
                    setStyleCell(sheet, borderstabla, 15, 3);
                    setStyleCell(sheet, borderstabla, 15, 4);

                    List<Planestudio> planes = filtrosBeanHelper.getConsultaDelegate()
                            .getPlanesByPrograma(programa.getPedid());
                    boolean uno = true;
                    int currow = 20;

                    ReporteAvanceAux tempAux = new ReporteAvanceAux();
                    for (ReporteAvanceAux aux : listaAux) {
                        tempAux = aux;
                        break;
                    }

                    //intentaremos usar un solo plan
                    setExDat(sheet, currow, 1, "?reas de conocimiento");
                    setStyleCell(sheet, headerTabla, currow, 1);
                    currow++;
                    //cada plan de estudios tiene varias areas de conocimiento
                    //List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate().getAreasByPlan( tempAux.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo().getPlanestudio().getPesid() );
                    List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate()
                            .getAreasByPlanClave(programa.getPedclave(),
                                    tempAux.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getPlanestudio().getPesvigenciaPlan());

                    for (Areaconocimiento areaCon : areasConocimiento) {
                        //clave , area de conocimiento, responsable
                        setExDat(sheet, currow, 1, "Clave");
                        setExDat(sheet, currow, 2, "?rea de conocimiento");
                        setExDat(sheet, currow, 3, "Responsable");
                        setStyleCell(sheet, headerTabla, currow, 1);
                        setStyleCell(sheet, headerTabla, currow, 2);
                        setStyleCell(sheet, headerTabla, currow, 3);

                        currow++;
                        setExDat(sheet, currow, 1, areaCon.getAcoclave()); //clave
                        setExDat(sheet, currow, 2, areaCon.getAconombre()); //area conociminto
                        setExDat(sheet, currow, 3, ""); //responsable

                        currow += 2;
                        //obtenemos las unidades de aprendisake
                        setExDat(sheet, currow, 1, "Clave unidad de aprendizaje");
                        setExDat(sheet, currow, 2, "Unidad de aprendizaje");
                        setExDat(sheet, currow, 3, "No. de empleado");
                        setExDat(sheet, currow, 4, "Nombre del profesor");
                        setExDat(sheet, currow, 5, "Grupo");
                        setExDat(sheet, currow, 6, "% Avance 1er reporte");
                        setExDat(sheet, currow, 7, "Fecha de elaboracin 1er RACT");
                        setExDat(sheet, currow, 8, "% Avance 2do reporte");
                        setExDat(sheet, currow, 9, "Fecha de elaboracin 2do RACT");
                        setExDat(sheet, currow, 10, "% Avance 3er reporte");
                        setExDat(sheet, currow, 11, "Fecha de elaboracin 3er RACT");
                        if (autotam) {
                            sheet.autoSizeColumn(2);
                            sheet.autoSizeColumn(4);
                            sheet.autoSizeColumn(11);
                            autotam = false;
                        }
                        // para formatear toda la linea
                        for (int i = 1; i <= 11; i++) {
                            //tenemos qu aajustar texto
                            //tenemos que centrar el texto
                            //cambiar el color de fondo
                            setStyleCell(sheet, headerTabla, currow, i);
                        }

                        currow++;
                        //List<Unidadaprendizaje> unidadesAprendisaje = filtrosBeanHelper.getConsultaDelegate().getUnidadByArea(areaCon.getAcoclave());

                        //de ls listaAux separamos los los reportes que correspondan a la unidad de aprendisaje acutal
                        ArrayList<ReporteAvanceAux> tempListAux = new ArrayList<ReporteAvanceAux>();
                        for (ReporteAvanceAux aux : listaAux) {
                            if (aux.getAreaConocimiento() != null
                                    && aux.getAreaConocimiento().getAcoclave() == areaCon.getAcoclave()
                                    && programa.getPedclave() == aux.getReporteAvance()
                                            .getUnidadaprendizajeImparteProfesor().getGrupo().getPlanestudio()
                                            .getProgramaeducativo().getPedclave()) {
                                tempListAux.add(aux);
                            }
                        }

                        //List<UnidadaprendizajeImparteProfesor> unidadesProfesor  = filtrosBeanHelper.getConsultaDelegate().getUnidadesAprendisajeImparteProf(unidadApren.getUapid());
                        int uniprofeTemp = 0;
                        for (ReporteAvanceAux auxRacs : tempListAux) {

                            //marcamos bordes
                            for (int i = 1; i <= 11; i++) {
                                setExDat(sheet, currow, i, " ");
                            }
                            for (int i = 1; i <= 11; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }

                            String nompreP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getPronombre();
                            String apellidoPP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoPaterno();
                            String apellidoPM = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoMaterno();
                            int claveUnidadApren = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapclave();
                            String nombreUnidad = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                    .getUapnombre();

                            uniprofeTemp = claveUnidadApren;
                            setExDat(sheet, currow, 1, claveUnidadApren); //clave
                            setExDat(sheet, currow, 2, nombreUnidad); //nombre unidad
                            //reporteAvance.unidadaprendizajeImparteProfesor.profesor.pronumeroEmpleado
                            setExDat(sheet, currow, 3,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                            .getProfesor().getPronumeroEmpleado()); //numero empleado
                            setExDat(sheet, currow, 4, apellidoPP + " " + apellidoPM + " " + nompreP); //nombre maestro
                            setExDat(sheet, currow, 5,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getGponumero()
                                            + "-"
                                            + auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                                    .getUiptipoSubgrupo()
                                            + "-" + auxRacs.getReporteAvance()
                                                    .getUnidadaprendizajeImparteProfesor().getUipsubgrupo()); //grupo numero

                            //marcamos bordes
                            for (int i = 1; i <= 5; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }
                            //tienne que ser entregados/enviados

                            setExDat(sheet, currow, (4 + (1 * 2)), auxRacs.getPorcentAvanceRact1()); //% avance 7**
                            if (auxRacs.getFechaElaboracRact1() != null) {
                                setExDat(sheet, currow, (4 + (1 * 2) + 1),
                                        auxRacs.getFechaElaboracRact1().toString()); //fecha elabora 8***
                            }
                            setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                            setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));

                            setExDat(sheet, currow, (4 + (2 * 2)), auxRacs.getPorcentAvanceRact2()); //% avance 7**
                            if (auxRacs.getFechaElaboracRact2() != null) {
                                setExDat(sheet, currow, (4 + (2 * 2) + 1),
                                        auxRacs.getFechaElaboracRact2().toString()); //fecha elabora 8***
                            }
                            setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                            setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));

                            setExDat(sheet, currow, (4 + (3 * 2)), auxRacs.getPorcentAvanceRact3()); //% avance 7**
                            if (auxRacs.getFechaElaboracRact3() != null) {
                                setExDat(sheet, currow, (4 + (3 * 2) + 1),
                                        auxRacs.getFechaElaboracRact3().toString()); //fecha elabora 8*** 
                            }
                            setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                            setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));

                            currow++;
                        }

                        currow += 2;
                    }

                    //aqui modifique Jesus Ruelas  - Entregados A Tiempo
                    //aqui cambie
                    headerTabla.setWrapText(true);
                    //aqui cambie

                    //aqui cambie jesus ruelas

                    //for(int i=0;i<28;i++){
                    //                 sheet.autoSizeColumn(1);
                    //                 sheet.autoSizeColumn(2);
                    //                 sheet.autoSizeColumn(3);
                    //                 sheet.autoSizeColumn(4);

                    //merge cells de Total de RACT General de + ProgEd
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,1,5));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,7,11));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,13,17));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,19,23));
                    //                sheet.addMergedRegion(new CellRangeAddress(13,13,25,29));

                    //}
                    //aqui cambie jesus ruelas

                    //mostraremos tabla con
                    // Programas educativos //  Total Racs entregados // Total Esperados
                    //preparamos informacion para insertar
                    //         List<Programaeducativo> programasByUnidad = getProgramasByUnidad();
                    List<Planestudio> planesByPrograma = getPlanesByPrograma();
                    int UACid = 1;
                    ArrayList<String> listaProgEdContar = esperadosDelegate.getSemadoroProgEdValor(UACid);

                    //setCellStyle(style); 

                    //setExDat(sheet, 7, 1, "Concentrado de Reporte de Avance de Contenido Temtico General  por Programa Educativo");

                    //imrpiimiremos la tabla
                    // Definimos los encabezados de la tabla

                    int pos = 0;

                    int row = currow + 4;
                    int col = 1;

                    Boolean bandPe = false;

                    //for (Programaeducativo pe : programasByUnidad) {
                    for (String peContar : listaProgEdContar) {

                        String[] contarEntEspProgEd;

                        if (listaProgEdContar.size() >= pos) {
                            if (peContar.contains(programa.getPednombre())) {

                                contarEntEspProgEd = listaProgEdContar.get(pos).split("-");

                                setExDat(sheet, row, col, "Clave");
                                setExDat(sheet, row, col + 1, "Programa Educativo");
                                setExDat(sheet, row, col + 3, "Plan de Estudios");
                                setExDat(sheet, row, col + 4, "Responsable");

                                //    if (contarEntEspProgEd[0].equalsIgnoreCase(programasByUnidad.get(0).getPednombre())) {

                                setExDat(sheet, row + 1, col, programa.getPedclave());
                                setExDat(sheet, row + 1, col + 1, programa.getPednombre());
                                if (!(planesByPrograma.isEmpty())) {
                                    setExDat(sheet, row + 1, col + 2,
                                            planesByPrograma.get(0).getPesvigenciaPlan());
                                }
                                setExDat(sheet, row + 1, col + 3, "");

                                //   }

                                //                  sheet.addMergedRegion(new CellRangeAddress(row+2,col,5,1));
                                setExDat(sheet, row + 2, col,
                                        "Total de RACT General de " + programa.getPednombre());

                                setExDat(sheet, row + 3, col, "Resumen de totales \r\n por numero de RACT");
                                setExDat(sheet, row + 3, col + 1, "Total entregados");
                                setExDat(sheet, row + 3, col + 2, "%");
                                setExDat(sheet, row + 3, col + 3, "Total esperados");
                                setExDat(sheet, row + 3, col + 4, "%");

                                sheet.getRow(row + 3).getCell(1);//aqui modifique jesus ruelas

                                float porcentEnt = (Float.parseFloat(contarEntEspProgEd[1]))
                                        / (Float.parseFloat(contarEntEspProgEd[2])) * 100;

                                float porcentEsp = 100 - porcentEnt;

                                //                setExDat(sheet, 15, 1, "Todos los RACTS");
                                //                setExDat(sheet, 15, 2, contarEntEspProgEd[1]);
                                //                setExDat(sheet, 15, 3, "" + porcentEnt + "%");
                                //                setExDat(sheet, 15, 4, contarEntEspProgEd[2]);
                                //                setExDat(sheet, 15, 5, ""  + porcentEsp + "%");
                                //String[] contarEntEspProgEd;
                                String[] contarEntRact1;
                                String[] contarEntRact2;
                                String[] contarEntRact3;
                                int esperadosProgEdUnicoRact = 0;

                                contarEntRact1 = contarEntEspProgEd[3].split(":");
                                contarEntRact2 = contarEntEspProgEd[4].split(":");
                                contarEntRact3 = contarEntEspProgEd[5].split(":");

                                esperadosProgEdUnicoRact = (Integer.parseInt(contarEntEspProgEd[2])) / 3;

                                float contarPorcentEntRact1 = (Float.parseFloat(contarEntRact1[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentEntRact2 = (Float.parseFloat(contarEntRact2[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;
                                float contarPorcentEntRact3 = (Float.parseFloat(contarEntRact3[1]))
                                        / ((float) esperadosProgEdUnicoRact) * 100;

                                float contarPorcentEspRact1 = 100 - contarPorcentEntRact1;
                                float contarPorcentEspRact2 = 100 - contarPorcentEntRact2;
                                float contarPorcentEspRact3 = 100 - contarPorcentEntRact3;

                                setExDat(sheet, row + 4, col, "RACT 1");
                                setExDat(sheet, row + 4, col + 1, contarEntRact1[1]);
                                setExDat(sheet, row + 4, col + 2, "" + contarPorcentEntRact1 + "%");
                                setExDat(sheet, row + 4, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 4, col + 4, "" + contarPorcentEspRact1 + "%");

                                setExDat(sheet, row + 5, col, "RACT 2");
                                setExDat(sheet, row + 5, col + 1, contarEntRact2[1]);
                                setExDat(sheet, row + 5, col + 2, "" + contarPorcentEntRact2 + "%");
                                setExDat(sheet, row + 5, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 5, col + 4, "" + contarPorcentEspRact2 + "%");

                                setExDat(sheet, row + 6, col, "RACT 3");
                                setExDat(sheet, row + 6, col + 1, contarEntRact3[1]);
                                setExDat(sheet, row + 6, col + 2, "" + contarPorcentEntRact3 + "%");
                                setExDat(sheet, row + 6, col + 3, esperadosProgEdUnicoRact);
                                setExDat(sheet, row + 6, col + 4, "" + contarPorcentEspRact3 + "%");

                                setExDat(sheet, row + 7, col, "Todos los RACTS");
                                setExDat(sheet, row + 7, col + 1, contarEntEspProgEd[1]);
                                setExDat(sheet, row + 7, col + 2, "" + porcentEnt + "%");
                                setExDat(sheet, row + 7, col + 3, contarEntEspProgEd[2]);
                                setExDat(sheet, row + 7, col + 4, "" + porcentEsp + "%");

                                setStyleCell(sheet, headerTabla, row, col);
                                setStyleCell(sheet, headerTabla, row, col + 1);
                                setStyleCell(sheet, headerTabla, row, col + 2);
                                setStyleCell(sheet, headerTabla, row, col + 3);
                                setStyleCell(sheet, headerTabla, row, col + 4);

                                setStyleCell(sheet, headerTabla, row + 2, col);
                                setStyleCell(sheet, headerTabla, row + 2, col + 1);
                                setStyleCell(sheet, headerTabla, row + 2, col + 2);
                                setStyleCell(sheet, headerTabla, row + 2, col + 3);

                                setStyleCell(sheet, headerTabla, row + 3, col);
                                setStyleCell(sheet, headerTabla, row + 3, col + 1);
                                setStyleCell(sheet, headerTabla, row + 3, col + 2);
                                setStyleCell(sheet, headerTabla, row + 3, col + 3);
                                setStyleCell(sheet, headerTabla, row + 3, col + 4);

                                bandPe = true;

                                pos++;
                            }

                        }
                        //               if (bandPe == true) {
                        //                   if (col >= 25) {
                        //                       row = row + 14;
                        //                       col = -5;
                        //                   }
                        //                   col = col + 6;
                        //                   bandPe = false;
                        //               }
                        pos++;
                    }
                    //}
                    //aqui modifique Jesus Ruelas                                                          

                } // fin del la comparacon de plan
            } // fin del for por plan de estudios

            //definimos encabezado
            sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
        } // fin de si es por entregados a tiempoif(entregados)

        //Porcentaje de Avance Global Incompleto
        if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Incompleto")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo e Incompleto")) {
            nombreLibro = reporte + nombreLibro;

            //definimos encabezado
            sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);

            //mostraremos tabla con
            // Programas educativos //  Total Racs entregados // Total Esperados
            //preparamos informacion para insertar
            List<Programaeducativo> programasByUnidad = getProgramasByUnidad();

            //imrpiimiremos la tabla
            // Definimos los encabezados de la tabla
            setExDat(sheet, 13, 17, "Programa Educativo");
            setExDat(sheet, 13, 18, "Total de RACT Entregados");
            setExDat(sheet, 13, 19, "Total de RACT Esperados");
            setExDat(sheet, 13, 20, " ");

            setStyleCell(sheet, headerTabla, 13, 17);
            setStyleCell(sheet, headerTabla, 13, 18);
            setStyleCell(sheet, headerTabla, 13, 19);

            /*sheet.autoSizeColumn(2);
            sheet.autoSizeColumn(3);
            sheet.autoSizeColumn(4);*/

            //imprimimos la informacion en su lugar

            int prow = 14;
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(programa.getPedid().toString())) {
                    setExDat(sheet, prow, 17, programa.getPednombre());
                    setExDat(sheet, prow, 18, 75);
                    setExDat(sheet, prow, 19, 100);
                    prow++;
                }
            }
            //Se obtiene consulta con los parametros seleccionados
            ArrayList<String> entregados = esperadosDelegate.getFullProgramaEdu(unidadacademica.getUacid(),
                    Plan, Programa, Ciclo);

            //agregamos programacion de grafico
            if (tipografico.equalsIgnoreCase("barras")) {
                BarChartCL demo1 = new BarChartCL("Estadsticas de Reportes Entregados por Programa Educativo",
                        entregados, "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("linea")) {
                LineChartDemo1 demo1 = new LineChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }
            if (tipografico.equalsIgnoreCase("pastel")) {
                PieChartDemo1 demo1 = new PieChartDemo1(
                        "Estadsticas de Reportes Entregados por Programa Educativo", entregados,
                        "ExcelPOIGrafica1");
                demo1.addChartToExcel(demo1.createChart(demo1.createDataset()), workbook);
            }

            //Se acaba grafico
            //recorreremos todo el list aux para revisar los programas educativos que utiliza
            //aun que podemos usar el selectProgramaeducativo

            /* Programacion de Hojas*/
            for (Programaeducativo programa : programasByUnidad) {
                if (selectProgramEducativo.contains(Integer.toString(programa.getPedclave()))) {
                    //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style); lo moveremos al final de la hoja para que no sea mdoficada la imagen
                    sheet = workbook.createSheet(programa.getPednombre());
                    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
                    //setExDat(sheet, 8, 3, "Concentrado de Reporte de Avance de Contenido Temtico de Entregados por Programa Educativo");

                    boolean autotam = true;

                    //informacion de programa educativo tabla
                    setExDat(sheet, 14, 1, "Clave");
                    setExDat(sheet, 14, 2, "Programa Educativo");
                    setExDat(sheet, 14, 3, "Plan de Estudios");
                    setExDat(sheet, 14, 4, "Responsable");

                    setStyleCell(sheet, headerTabla, 14, 1);
                    setStyleCell(sheet, headerTabla, 14, 2);
                    setStyleCell(sheet, headerTabla, 14, 3);
                    setStyleCell(sheet, headerTabla, 14, 4);

                    //llenado de informacion
                    // se tiene imprimir por cada plan de estudios???

                    //                    Responsableprogramaeducativo responsable = filtrosBeanHelper.getConsultaDelegate().getResponsableProgramaEducativoByID(programa.getPedid());

                    setExDat(sheet, 15, 1, programa.getPedclave());
                    setExDat(sheet, 15, 2, programa.getPednombre());
                    setExDat(sheet, 15, 3, "");
                    setExDat(sheet, 15, 4, "");
                    setStyleCell(sheet, borderstabla, 15, 1);
                    setStyleCell(sheet, borderstabla, 15, 2);
                    setStyleCell(sheet, borderstabla, 15, 3);
                    setStyleCell(sheet, borderstabla, 15, 4);

                    List<Planestudio> planes = filtrosBeanHelper.getConsultaDelegate()
                            .getPlanesByPrograma(programa.getPedid());
                    boolean uno = true;
                    int currow = 20;

                    Planestudio planeact = new Planestudio();
                    for (Planestudio planeactn : planes) {
                        planeact = planeactn;
                        break;
                    }

                    ReporteAvanceAux tempAux = new ReporteAvanceAux();
                    for (ReporteAvanceAux aux : listaAux) {
                        tempAux = aux;
                        break;
                    }

                    //intentaremos usar un solo plan
                    setExDat(sheet, currow, 1, "?reas de conocimiento");
                    setStyleCell(sheet, headerTabla, currow, 1);
                    currow++;
                    List<Areaconocimiento> areasConocimiento = filtrosBeanHelper.getConsultaDelegate()
                            .getAreasByPlanClave(programa.getPedclave(),
                                    tempAux.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getPlanestudio().getPesvigenciaPlan());

                    for (Areaconocimiento areaCon : areasConocimiento) {
                        //clave , area de conocimiento, responsable
                        setExDat(sheet, currow, 1, "Clave");
                        setExDat(sheet, currow, 2, "?rea de conocimiento");
                        setExDat(sheet, currow, 3, "Responsable");
                        setStyleCell(sheet, headerTabla, currow, 1);
                        setStyleCell(sheet, headerTabla, currow, 2);
                        setStyleCell(sheet, headerTabla, currow, 3);

                        currow++;
                        setExDat(sheet, currow, 1, areaCon.getAcoclave()); //clave
                        setExDat(sheet, currow, 2, areaCon.getAconombre()); //area conociminto
                        setExDat(sheet, currow, 3, ""); //responsable

                        currow += 2;
                        //obtenemos las unidades de aprendisake
                        setExDat(sheet, currow, 1, "Clave unidad de aprendizaje");
                        setExDat(sheet, currow, 2, "Unidad de aprendizaje");
                        setExDat(sheet, currow, 3, "No. de empleado");
                        setExDat(sheet, currow, 4, "Nombre del profesor");
                        setExDat(sheet, currow, 5, "Grupo");
                        setExDat(sheet, currow, 6, "% Avance 1er reporte");
                        setExDat(sheet, currow, 7, "Fecha de elaboracin 1er RACT");
                        setExDat(sheet, currow, 8, "% Avance 2do reporte");
                        setExDat(sheet, currow, 9, "Fecha de elaboracin 2do RACT");
                        setExDat(sheet, currow, 10, "% Avance 3er reporte");
                        setExDat(sheet, currow, 11, "Fecha de elaboracin 3er RACT");

                        //autosize para la columna
                        if (autotam) {
                            sheet.autoSizeColumn(2);
                            sheet.autoSizeColumn(4);
                            sheet.autoSizeColumn(11);
                            autotam = false;
                        }

                        // para formatear toda la linea
                        for (int i = 1; i <= 11; i++) {
                            //tenemos qu aajustar texto
                            //tenemos que centrar el texto
                            //cambiar el color de fondo
                            setStyleCell(sheet, headerTabla, currow, i);
                        }

                        currow++;
                        //List<Unidadaprendizaje> unidadesAprendisaje = filtrosBeanHelper.getConsultaDelegate().getUnidadByArea(areaCon.getAcoclave());

                        //de ls listaAux separamos los los reportes que correspondan a la unidad de aprendisaje acutal
                        ArrayList<ReporteAvanceAux> tempListAux = new ArrayList<ReporteAvanceAux>();
                        for (ReporteAvanceAux aux : listaAux) {
                            if (aux.getAreaConocimiento().getAcoclave() == areaCon.getAcoclave()
                                    && programa.getPedclave() == aux.getReporteAvance()
                                            .getUnidadaprendizajeImparteProfesor().getGrupo().getPlanestudio()
                                            .getProgramaeducativo().getPedclave()) {
                                tempListAux.add(aux);
                            }
                        }

                        //List<UnidadaprendizajeImparteProfesor> unidadesProfesor  = filtrosBeanHelper.getConsultaDelegate().getUnidadesAprendisajeImparteProf(unidadApren.getUapid());
                        int uniprofeTemp = 0;
                        for (ReporteAvanceAux auxRacs : tempListAux) {

                            String nompreP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getPronombre();
                            String apellidoPP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoPaterno();
                            String apellidoPM = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoMaterno();
                            int claveUnidadApren = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapclave();
                            String nombreUnidad = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                    .getUapnombre();

                            uniprofeTemp = claveUnidadApren;
                            setExDat(sheet, currow, 1, claveUnidadApren); //clave
                            setExDat(sheet, currow, 2, nombreUnidad); //nombre unidad
                            //reporteAvance.unidadaprendizajeImparteProfesor.profesor.pronumeroEmpleado
                            setExDat(sheet, currow, 3,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                            .getProfesor().getPronumeroEmpleado()); //numero empleado
                            setExDat(sheet, currow, 4, apellidoPP + " " + apellidoPM + " " + nompreP); //nombre maestro
                            setExDat(sheet, currow, 5,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getGponumero()
                                            + "-"
                                            + auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                                    .getUiptipoSubgrupo()
                                            + "-" + auxRacs.getReporteAvance()
                                                    .getUnidadaprendizajeImparteProfesor().getUipsubgrupo()); //grupo numero

                            //marcamos bordes
                            for (int i = 1; i <= 5; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }
                            float totalpor = 0;
                            if (auxRacs.getStatusRact1() != null && auxRacs.getStatusRact2() != null
                                    && auxRacs.getStatusRact3() != null) {
                                totalpor = auxRacs.getPorcentAvanceRact1() + auxRacs.getPorcentAvanceRact2()
                                        + auxRacs.getPorcentAvanceRact3();
                            }

                            //tienne que ser entregados/enviados
                            if (auxRacs.getStatusRact1() != null) {

                                System.out.println("Entro a enviados 1");
                                setExDat(sheet, currow, (4 + (1 * 2)), auxRacs.getPorcentAvanceRact1()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact1() != null) {
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1),
                                            auxRacs.getFechaElaboracRact1().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (1 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact2() != null) {

                                setExDat(sheet, currow, (4 + (2 * 2)), auxRacs.getPorcentAvanceRact2()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact2() != null) {
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1),
                                            auxRacs.getFechaElaboracRact2().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (2 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact3() != null) {

                                setExDat(sheet, currow, (4 + (3 * 2)), auxRacs.getPorcentAvanceRact3()); //% avance 7**
                                if (auxRacs.getFechaElaboracRact3() != null) {
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1),
                                            auxRacs.getFechaElaboracRact3().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (3 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));
                            }

                            currow++;
                        }

                        currow += 2;
                    }

                    //cabeceran excel                         
                    //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style);
                } // fin del la comparacon de plan
            } // fin del for por plan de estudios

        } // fin de si es por entregados if(entregados)

    } //fin de programas educativos

    if (criterio.equalsIgnoreCase("area_conocimiento")) {
        HSSFSheet sheet = workbook.createSheet("Graficos");
        nombreLibro = "- Area de conocimiento";

        if (reporte.equalsIgnoreCase("entregados") || reporte.equalsIgnoreCase("noentregados")
                || reporte.equalsIgnoreCase("entregadosynoentregados") ||
                //Aqui modifique Jesus Ruelas 26 oct 2015
                reporte.equalsIgnoreCase("entregadosatiempo")
                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                || reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues") ||
                //Aqui modifique Jesus Ruelas 26 oct 2015
                reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Incompleto")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo e Incompleto")) {

            if (reporte.equalsIgnoreCase("entregados"))
                nombreLibro = "Entregados " + nombreLibro;

            if (reporte.equalsIgnoreCase("noentregados"))
                nombreLibro = "No Entregados " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosynoentregados"))
                nombreLibro = "Entregados Y No Entregados " + nombreLibro;

            //Aqui modifique Jesus Ruelas 26 oct 2015               
            if (reporte.equalsIgnoreCase("entregadosatiempo"))
                nombreLibro = "Entregados a tiempo " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosdespueslimite"))
                nombreLibro = "Entregados despus de fecha lmite " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues"))
                nombreLibro = "Entregados a tiempo y despues de fecha lmite " + nombreLibro;
            //Aqui modifique Jesus Ruelas 26 oct 2015

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo"))
                nombreLibro = "Porcentaje de Avance Global Completo " + nombreLibro;

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Incompleto"))
                nombreLibro = "Porcentaje de Avance Global Incompleto " + nombreLibro;

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo e Incompleto"))
                nombreLibro = "Porcentaje de Avance Global Completo e Incompleto " + nombreLibro;

            //definimos encabezado
            //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style);

            //mostraremos tabla con
            // Programas educativos //  Total Racs entregados // Total Esperados
            //preparamos informacion para insertar
            List<Programaeducativo> programasByUnidad = getProgramasByUnidad();
            List<Areaconocimiento> areasByUnidad = getAreasByPlanesEstudioClave();

            /* Programacion de Hojas*/
            for (Areaconocimiento areaConocimiento : areasByUnidad) {
                if (selectAreaConocimiento.contains(Integer.toString(areaConocimiento.getAcoclave()))) {
                    //aqui creamos la hoja para el programa

                    ArrayList<ReporteAvanceAux> tempListAux = new ArrayList<ReporteAvanceAux>();
                    for (ReporteAvanceAux aux : listaAux) {
                        if (aux.getAreaConocimiento().getAcoclave() == areaConocimiento.getAcoclave()) {
                            tempListAux.add(aux);
                        }
                    }

                    //// de este for
                    // para no imprirmir hojas vacias
                    if (tempListAux.size() > 0) {

                        sheet = workbook.createSheet(areaConocimiento.getAconombre());
                        //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style); lo moveremos al final de la hoja para que no sea mdoficada la imagen
                        setExDat(sheet, 8, 3,
                                "Concentrado de Reporte de Avance de Contenido Temtico de Entregados por Area de conocimiento");

                        boolean autotam = true;

                        int currow = 18;

                        //Aqui modifique Jesus Ruelas 26 oct 2015
                        if (reporte.equalsIgnoreCase("entregadosatiempo")
                                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                                || reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues")) {
                            if (ract.equalsIgnoreCase("1") || ract.equalsIgnoreCase("2")
                                    || ract.equalsIgnoreCase("3")) {
                                setExDat(sheet, currow, 1, "Fecha Corte");
                                setExDat(sheet, currow, 2, "Fecha Lmite");
                                setStyleCell(sheet, headerTabla, currow, 1);
                                setStyleCell(sheet, headerTabla, currow, 2);
                                currow++;
                                setExDat(sheet, currow, 1, tempListAux.get(0).getFechaCorte().toString());
                                setExDat(sheet, currow, 2, tempListAux.get(0).getFechaLimite().toString());
                                currow++;
                                currow++;
                            } else {
                                ReporteAux rep1 = new ReporteAux();
                                ReporteAux rep2 = new ReporteAux();
                                ReporteAux rep3 = new ReporteAux();

                                rep1.setNumRact(1);
                                rep2.setNumRact(2);
                                rep3.setNumRact(3);

                                rep1.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());
                                rep2.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());
                                rep3.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());

                                ReporteAvanceAux ra1 = new ReporteAvanceAux();
                                ReporteAvanceAux ra2 = new ReporteAvanceAux();
                                ReporteAvanceAux ra3 = new ReporteAvanceAux();

                                ra1 = filtrosBeanHelper.TiempoLimiteYCorte(rep1);
                                ra2 = filtrosBeanHelper.TiempoLimiteYCorte(rep2);
                                ra3 = filtrosBeanHelper.TiempoLimiteYCorte(rep3);

                                setExDat(sheet, currow, 1, "Fecha Corte Ract 1");
                                setExDat(sheet, currow, 2, "Fecha Lmite Ract 1");
                                setStyleCell(sheet, headerTabla, currow, 1);
                                setStyleCell(sheet, headerTabla, currow, 2);
                                currow++;
                                setExDat(sheet, currow, 1, ra1.getFechaCorte().toString());
                                setExDat(sheet, currow, 2, ra1.getFechaLimite().toString());
                                //currow++;                       
                                setExDat(sheet, currow - 1, 4, "Fecha Corte Ract 2");
                                setExDat(sheet, currow - 1, 5, "Fecha Lmite Ract 2");
                                setStyleCell(sheet, headerTabla, currow - 1, 4);
                                setStyleCell(sheet, headerTabla, currow - 1, 5);
                                //currow++;                            
                                setExDat(sheet, currow, 4, ra2.getFechaCorte().toString());
                                setExDat(sheet, currow, 5, ra2.getFechaLimite().toString());
                                //currow++;                       
                                setExDat(sheet, currow - 1, 7, "Fecha Corte Ract 3");
                                setExDat(sheet, currow - 1, 8, "Fecha Lmite Ract 3");
                                setStyleCell(sheet, headerTabla, currow - 1, 7);
                                setStyleCell(sheet, headerTabla, currow - 1, 8);
                                //currow++;                            
                                setExDat(sheet, currow, 7, ra3.getFechaCorte().toString());
                                setExDat(sheet, currow, 8, ra3.getFechaLimite().toString());
                                currow++;
                                currow++;
                            }
                        }
                        //Aqui modifique Jesus Ruelas 26 oct 2015

                        setExDat(sheet, currow, 1, "Clave unidad de aprendizaje");
                        setExDat(sheet, currow, 2, "Unidad de aprendizaje");
                        setExDat(sheet, currow, 3, "No. de empleado");
                        setExDat(sheet, currow, 4, "Nombre del profesor");
                        setExDat(sheet, currow, 5, "Grupo");
                        setExDat(sheet, currow, 6, "% Avance 1er reporte");
                        setExDat(sheet, currow, 7, "Fecha de elaboracin 1er RACT");
                        setExDat(sheet, currow, 8, "% Avance 2do reporte");
                        setExDat(sheet, currow, 9, "Fecha de elaboracin 2do RACT");
                        setExDat(sheet, currow, 10, "% Avance 3er reporte");
                        setExDat(sheet, currow, 11, "Fecha de elaboracin 3er RACT");

                        //autosize para la columna
                        if (autotam) {
                            sheet.autoSizeColumn(2);
                            sheet.autoSizeColumn(4);
                            sheet.autoSizeColumn(11);
                            autotam = false;
                        }
                        // para formatear toda la linea
                        for (int i = 1; i <= 11; i++) {
                            setStyleCell(sheet, headerTabla, currow, i);
                        }
                        currow++;

                        int uniprofeTemp = 0;
                        for (ReporteAvanceAux auxRacs : tempListAux) {

                            //marcamos bordes
                            for (int i = 1; i <= 11; i++) {
                                setExDat(sheet, currow, i, " ");
                            }
                            for (int i = 1; i <= 11; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }

                            String nompreP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getPronombre();
                            String apellidoPP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoPaterno();
                            String apellidoPM = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoMaterno();
                            int claveUnidadApren = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapclave();
                            String nombreUnidad = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                    .getUapnombre();

                            uniprofeTemp = claveUnidadApren;
                            setExDat(sheet, currow, 1, claveUnidadApren); //clave
                            setExDat(sheet, currow, 2, nombreUnidad); //nombre unidad
                            //reporteAvance.unidadaprendizajeImparteProfesor.profesor.pronumeroEmpleado
                            setExDat(sheet, currow, 3,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                            .getProfesor().getPronumeroEmpleado()); //numero empleado
                            setExDat(sheet, currow, 4, apellidoPP + " " + apellidoPM + " " + nompreP); //nombre maestro
                            setExDat(sheet, currow, 5,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getGponumero()
                                            + "-"
                                            + auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                                    .getUiptipoSubgrupo()
                                            + "-" + auxRacs.getReporteAvance()
                                                    .getUnidadaprendizajeImparteProfesor().getUipsubgrupo()); //grupo numero

                            //marcamos bordes
                            for (int i = 1; i <= 5; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }
                            //tienne que ser entregados/enviados
                            if (auxRacs.getStatusRact1() != null) {

                                System.out.println("Entro a enviados 1");
                                setExDat(sheet, currow, (4 + (1 * 2)), auxRacs.getPorcentAvanceRact1()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact1() != null) {
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1),
                                            auxRacs.getFechaElaboracRact1().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (1 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact2() != null) {

                                setExDat(sheet, currow, (4 + (2 * 2)), auxRacs.getPorcentAvanceRact2()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact2() != null) {
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1),
                                            auxRacs.getFechaElaboracRact2().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (2 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact3() != null) {

                                setExDat(sheet, currow, (4 + (3 * 2)), auxRacs.getPorcentAvanceRact3()); //% avance 7**
                                if (auxRacs.getFechaElaboracRact3() != null) {
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1),
                                            auxRacs.getFechaElaboracRact3().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (3 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));
                            }

                            currow++;
                        }
                    }
                    // delfindelfor

                    //fin de codigo e imrpesion de cabezera
                    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
                }

            } // fin del for por plan de estudios     
        } // fin de si es por entregados if(entregados)
    } //fin de areas de conocimiento

    if (criterio.equalsIgnoreCase("unidad_aprendizaje")) {
        HSSFSheet sheet = workbook.createSheet("Graficos");
        nombreLibro = "- Unidad de aprendizaje";

        if (reporte.equalsIgnoreCase("entregados") || reporte.equalsIgnoreCase("noentregados")
                || reporte.equalsIgnoreCase("entregadosynoentregados") ||
                //Aqui modifique Jesus Ruelas 26 oct 2015
                reporte.equalsIgnoreCase("entregadosatiempo")
                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                || reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues") ||
                //Aqui modifique Jesus Ruelas 26 oct 2015
                reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Incompleto")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo e Incompleto")) {

            if (reporte.equalsIgnoreCase("entregados"))
                nombreLibro = "Entregados " + nombreLibro;

            if (reporte.equalsIgnoreCase("noentregados"))
                nombreLibro = "No Entregados " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosynoentregados"))
                nombreLibro = "Entregados Y No Entregados " + nombreLibro;

            //Aqui modifique Jesus Ruelas 26 oct 2015               
            if (reporte.equalsIgnoreCase("entregadosatiempo"))
                nombreLibro = "Entregados a tiempo " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosdespueslimite"))
                nombreLibro = "Entregados despus de fecha lmite " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues"))
                nombreLibro = "Entregados a tiempo y despues de fecha lmite " + nombreLibro;
            //Aqui modifique Jesus Ruelas 26 oct 2015

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo"))
                nombreLibro = "Porcentaje de Avance Global Completo " + nombreLibro;

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Incompleto"))
                nombreLibro = "Porcentaje de Avance Global Incompleto " + nombreLibro;

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo e Incompleto"))
                nombreLibro = "Porcentaje de Avance Global Completo e Incompleto " + nombreLibro;

            //definimos encabezado
            //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style);

            //mostraremos tabla con
            // Programas educativos //  Total Racs entregados // Total Esperados
            //preparamos informacion para insertar
            List<Programaeducativo> programasByUnidad = getProgramasByUnidad();
            List<Unidadaprendizaje> unidadesByArea = getUnidadesByAreaAconocimientoClave();

            /* Programacion de Hojas*/
            for (Unidadaprendizaje unidadAprend : unidadesByArea) {
                if (selectUnidadAprendisaje.contains(Integer.toString(unidadAprend.getUapclave()))) {
                    //aqui creamos la hoja para el programa

                    ArrayList<ReporteAvanceAux> tempListAux = new ArrayList<ReporteAvanceAux>();
                    for (ReporteAvanceAux aux : listaAux) {
                        if (aux.reporteAvance.getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                .getUapclave() == unidadAprend.getUapclave()) {
                            tempListAux.add(aux);
                        }
                    }

                    //// de este for
                    // para no imprirmir hojas vacias
                    if (tempListAux.size() > 0) {

                        sheet = workbook.createSheet(unidadAprend.getUapnombre());
                        //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style); lo moveremos al final de la hoja para que no sea mdoficada la imagen
                        setExDat(sheet, 8, 3,
                                "Concentrado de Reporte de Avance de Contenido Temtico de Entregados por Unidad de aprendizaje");

                        boolean autotam = true;

                        int currow = 18;

                        //Aqui modifique Jesus Ruelas 26 oct 2015
                        if (reporte.equalsIgnoreCase("entregadosatiempo")
                                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                                || reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues")) {
                            if (ract.equalsIgnoreCase("1") || ract.equalsIgnoreCase("2")
                                    || ract.equalsIgnoreCase("3")) {

                                setExDat(sheet, currow, 1, "Fecha Corte");
                                setExDat(sheet, currow, 2, "Fecha Lmite");
                                setStyleCell(sheet, headerTabla, currow, 1);
                                setStyleCell(sheet, headerTabla, currow, 2);
                                currow++;
                                setExDat(sheet, currow, 1, tempListAux.get(0).getFechaCorte().toString());
                                setExDat(sheet, currow, 2, tempListAux.get(0).getFechaLimite().toString());
                                currow++;
                                currow++;
                            } else {
                                ReporteAux rep1 = new ReporteAux();
                                ReporteAux rep2 = new ReporteAux();
                                ReporteAux rep3 = new ReporteAux();

                                rep1.setNumRact(1);
                                rep2.setNumRact(2);
                                rep3.setNumRact(3);

                                rep1.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());
                                rep2.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());
                                rep3.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());

                                ReporteAvanceAux ra1 = new ReporteAvanceAux();
                                ReporteAvanceAux ra2 = new ReporteAvanceAux();
                                ReporteAvanceAux ra3 = new ReporteAvanceAux();

                                ra1 = filtrosBeanHelper.TiempoLimiteYCorte(rep1);
                                ra2 = filtrosBeanHelper.TiempoLimiteYCorte(rep2);
                                ra3 = filtrosBeanHelper.TiempoLimiteYCorte(rep3);

                                setExDat(sheet, currow, 1, "Fecha Corte Ract 1");
                                setExDat(sheet, currow, 2, "Fecha Lmite Ract 1");
                                setStyleCell(sheet, headerTabla, currow, 1);
                                setStyleCell(sheet, headerTabla, currow, 2);
                                currow++;
                                setExDat(sheet, currow, 1, ra1.getFechaCorte().toString());
                                setExDat(sheet, currow, 2, ra1.getFechaLimite().toString());
                                //currow++;                       

                                setExDat(sheet, currow - 1, 4, "Fecha Corte Ract 2");
                                setExDat(sheet, currow - 1, 5, "Fecha Lmite Ract 2");
                                setStyleCell(sheet, headerTabla, currow - 1, 4);
                                setStyleCell(sheet, headerTabla, currow - 1, 5);
                                //currow++;                            
                                setExDat(sheet, currow, 4, ra2.getFechaCorte().toString());
                                setExDat(sheet, currow, 5, ra2.getFechaLimite().toString());
                                //currow++;                       

                                setExDat(sheet, currow - 1, 7, "Fecha Corte Ract 3");
                                setExDat(sheet, currow - 1, 8, "Fecha Lmite Ract 3");
                                setStyleCell(sheet, headerTabla, currow - 1, 7);
                                setStyleCell(sheet, headerTabla, currow - 1, 8);
                                //currow++;                            
                                setExDat(sheet, currow, 7, ra3.getFechaCorte().toString());
                                setExDat(sheet, currow, 8, ra3.getFechaLimite().toString());
                                currow++;
                                currow++;
                            }
                        }
                        //Aqui modifique Jesus Ruelas 26 oct 2015

                        setExDat(sheet, currow, 1, "Clave unidad de aprendizaje");
                        setExDat(sheet, currow, 2, "Unidad de aprendizaje");
                        setStyleCell(sheet, headerTabla, currow, 1);
                        setStyleCell(sheet, headerTabla, currow, 2);
                        currow++;
                        int claveUnidadApren = tempListAux.get(0).getReporteAvance()
                                .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapclave();
                        String nombreUnidad = tempListAux.get(0).getReporteAvance()
                                .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapnombre();

                        int uniprofeTemp = 0;

                        uniprofeTemp = claveUnidadApren;
                        setExDat(sheet, currow, 1, claveUnidadApren); //clave
                        setExDat(sheet, currow, 2, nombreUnidad); //nombre unidad
                        currow++;

                        //autosize para la columna
                        if (autotam) {
                            sheet.autoSizeColumn(2);
                            sheet.autoSizeColumn(4);
                            sheet.autoSizeColumn(11);
                            autotam = false;
                        }

                        setExDat(sheet, currow, 1, "No. de empleado");
                        setExDat(sheet, currow, 2, "Nombre del profesor");
                        setExDat(sheet, currow, 3, "Grupo");
                        setExDat(sheet, currow, 4, "% Avance 1er reporte");
                        setExDat(sheet, currow, 5, "Fecha de elaboracin 1er RACT");
                        setExDat(sheet, currow, 6, "% Avance 2do reporte");
                        setExDat(sheet, currow, 7, "Fecha de elaboracin 2do RACT");
                        setExDat(sheet, currow, 8, "% Avance 3er reporte");
                        setExDat(sheet, currow, 9, "Fecha de elaboracin 3er RACT");
                        // para formatear toda la linea
                        for (int i = 1; i <= 9; i++) {
                            setStyleCell(sheet, headerTabla, currow, i);
                        }
                        //currow++;
                        currow++;

                        for (ReporteAvanceAux auxRacs : tempListAux) {

                            //marcamos bordes
                            for (int i = 1; i <= 9; i++) {
                                setExDat(sheet, currow, i, " ");
                            }
                            for (int i = 1; i <= 9; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }

                            String nompreP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getPronombre();
                            String apellidoPP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoPaterno();
                            String apellidoPM = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoMaterno();

                            //reporteAvance.unidadaprendizajeImparteProfesor.profesor.pronumeroEmpleado
                            setExDat(sheet, currow, 1,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                            .getProfesor().getPronumeroEmpleado()); //numero empleado
                            setExDat(sheet, currow, 2, apellidoPP + " " + apellidoPM + " " + nompreP); //nombre maestro
                            setExDat(sheet, currow, 3,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getGponumero()
                                            + "-"
                                            + auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                                    .getUiptipoSubgrupo()
                                            + "-" + auxRacs.getReporteAvance()
                                                    .getUnidadaprendizajeImparteProfesor().getUipsubgrupo()); //grupo numero

                            //marcamos bordes
                            for (int i = 1; i <= 5; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }
                            //tienne que ser entregados/enviados
                            if (auxRacs.getStatusRact1() != null) {

                                System.out.println("Entro a enviados 1");
                                setExDat(sheet, currow, (2 + (1 * 2)), auxRacs.getPorcentAvanceRact1()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact1() != null) {
                                    setExDat(sheet, currow, (2 + (1 * 2) + 1),
                                            auxRacs.getFechaElaboracRact1().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (2 + (1 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (2 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (2 + (1 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (2 + (1 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (2 + (1 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (2 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (2 + (1 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact2() != null) {

                                setExDat(sheet, currow, (2 + (2 * 2)), auxRacs.getPorcentAvanceRact2()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact2() != null) {
                                    setExDat(sheet, currow, (2 + (2 * 2) + 1),
                                            auxRacs.getFechaElaboracRact2().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (2 + (2 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (2 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (2 + (2 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (2 + (2 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (2 + (2 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (2 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (2 + (2 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact3() != null) {

                                setExDat(sheet, currow, (2 + (3 * 2)), auxRacs.getPorcentAvanceRact3()); //% avance 7**
                                if (auxRacs.getFechaElaboracRact3() != null) {
                                    setExDat(sheet, currow, (2 + (3 * 2) + 1),
                                            auxRacs.getFechaElaboracRact3().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (2 + (3 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (2 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (2 + (3 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (2 + (3 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (2 + (3 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (2 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (2 + (3 * 2) + 1));
                            }

                            currow++;
                        }
                    }
                    // delfindelfor

                    //fin de codigo e imrpesion de cabezera
                    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
                }

            } // fin del for por plan de estudios     
        } // fin de si es por entregados if(entregados)
    } //fin de unidad de aprendizaje

    if (criterio.equalsIgnoreCase("profesor")) {
        HSSFSheet sheet = workbook.createSheet("Graficos");
        nombreLibro = "- Profesor";

        if (reporte.equalsIgnoreCase("entregados") || reporte.equalsIgnoreCase("noentregados")
                || reporte.equalsIgnoreCase("entregadosynoentregados") ||
                //Aqui modifique Jesus Ruelas 26 oct 2015
                reporte.equalsIgnoreCase("entregadosatiempo")
                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                || reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues") ||
                //Aqui modifique Jesus Ruelas 26 oct 2015
                reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Incompleto")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo e Incompleto")) {

            if (reporte.equalsIgnoreCase("entregados"))
                nombreLibro = "Entregados " + nombreLibro;

            if (reporte.equalsIgnoreCase("noentregados"))
                nombreLibro = "No Entregados " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosynoentregados"))
                nombreLibro = "Entregados Y No Entregados " + nombreLibro;

            //Aqui modifique Jesus Ruelas 26 oct 2015               
            if (reporte.equalsIgnoreCase("entregadosatiempo"))
                nombreLibro = "Entregados a tiempo " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosdespueslimite"))
                nombreLibro = "Entregados despus de fecha lmite " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues"))
                nombreLibro = "Entregados a tiempo y despues de fecha lmite " + nombreLibro;
            //Aqui modifique Jesus Ruelas 26 oct 2015

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo"))
                nombreLibro = "Porcentaje de Avance Global Completo " + nombreLibro;

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Incompleto"))
                nombreLibro = "Porcentaje de Avance Global Incompleto " + nombreLibro;

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo e Incompleto"))
                nombreLibro = "Porcentaje de Avance Global Completo e Incompleto " + nombreLibro;

            //definimos encabezado
            //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style);

            //mostraremos tabla con
            // Programas educativos //  Total Racs entregados // Total Esperados
            //preparamos informacion para insertar
            List<Programaeducativo> programasByUnidad = getProgramasByUnidad();
            List<Profesor> profesoresByUAprend = getProfesoresByUnidadAprendisajeClave();

            /* Programacion de Hojas*/
            for (Profesor prof : profesoresByUAprend) {
                if (selectProfesor.contains(Integer.toString(prof.getPronumeroEmpleado()))) {
                    //aqui creamos la hoja para el programa

                    ArrayList<ReporteAvanceAux> tempListAux = new ArrayList<ReporteAvanceAux>();
                    for (ReporteAvanceAux aux : listaAux) {
                        if (aux.reporteAvance.getUnidadaprendizajeImparteProfesor().getProfesor()
                                .getPronumeroEmpleado() == prof.getPronumeroEmpleado()) {
                            tempListAux.add(aux);
                        }
                    }

                    //// de este for
                    // para no imprirmir hojas vacias
                    if (tempListAux.size() > 0) {

                        String nompreP = tempListAux.get(0).getReporteAvance()
                                .getUnidadaprendizajeImparteProfesor().getProfesor().getPronombre();
                        String apellidoPP = tempListAux.get(0).getReporteAvance()
                                .getUnidadaprendizajeImparteProfesor().getProfesor().getProapellidoPaterno();
                        String apellidoPM = tempListAux.get(0).getReporteAvance()
                                .getUnidadaprendizajeImparteProfesor().getProfesor().getProapellidoMaterno();

                        sheet = workbook.createSheet(String.valueOf(prof.getPronumeroEmpleado()));
                        //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style); lo moveremos al final de la hoja para que no sea mdoficada la imagen
                        setExDat(sheet, 8, 3,
                                "Concentrado de Reporte de Avance de Contenido Temtico de Entregados por Profesor "
                                        + prof.getPronumeroEmpleado() + " " + apellidoPP + " " + apellidoPM
                                        + " " + nompreP);

                        boolean autotam = true;

                        int currow = 18;

                        //Aqui modifique Jesus Ruelas 26 oct 2015
                        if (reporte.equalsIgnoreCase("entregadosatiempo")
                                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                                || reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues")) {
                            if (ract.equalsIgnoreCase("1") || ract.equalsIgnoreCase("2")
                                    || ract.equalsIgnoreCase("3")) {

                                setExDat(sheet, currow, 1, "Fecha Corte");
                                setExDat(sheet, currow, 2, "Fecha Lmite");
                                setStyleCell(sheet, headerTabla, currow, 1);
                                setStyleCell(sheet, headerTabla, currow, 2);
                                currow++;
                                setExDat(sheet, currow, 1, tempListAux.get(0).getFechaCorte().toString());
                                setExDat(sheet, currow, 2, tempListAux.get(0).getFechaLimite().toString());
                                currow++;
                                currow++;
                            } else {
                                ReporteAux rep1 = new ReporteAux();
                                ReporteAux rep2 = new ReporteAux();
                                ReporteAux rep3 = new ReporteAux();

                                rep1.setNumRact(1);
                                rep2.setNumRact(2);
                                rep3.setNumRact(3);

                                rep1.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());
                                rep2.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());
                                rep3.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());

                                ReporteAvanceAux ra1 = new ReporteAvanceAux();
                                ReporteAvanceAux ra2 = new ReporteAvanceAux();
                                ReporteAvanceAux ra3 = new ReporteAvanceAux();

                                ra1 = filtrosBeanHelper.TiempoLimiteYCorte(rep1);
                                ra2 = filtrosBeanHelper.TiempoLimiteYCorte(rep2);
                                ra3 = filtrosBeanHelper.TiempoLimiteYCorte(rep3);

                                setExDat(sheet, currow, 1, "Fecha Corte Ract 1");
                                setExDat(sheet, currow, 2, "Fecha Lmite Ract 1");
                                setStyleCell(sheet, headerTabla, currow, 1);
                                setStyleCell(sheet, headerTabla, currow, 2);
                                currow++;
                                setExDat(sheet, currow, 1, ra1.getFechaCorte().toString());
                                setExDat(sheet, currow, 2, ra1.getFechaLimite().toString());
                                //currow++;                       

                                setExDat(sheet, currow - 1, 4, "Fecha Corte Ract 2");
                                setExDat(sheet, currow - 1, 5, "Fecha Lmite Ract 2");
                                setStyleCell(sheet, headerTabla, currow - 1, 4);
                                setStyleCell(sheet, headerTabla, currow - 1, 5);
                                //currow++;                            
                                setExDat(sheet, currow, 4, ra2.getFechaCorte().toString());
                                setExDat(sheet, currow, 5, ra2.getFechaLimite().toString());
                                //currow++;                       

                                setExDat(sheet, currow - 1, 7, "Fecha Corte Ract 3");
                                setExDat(sheet, currow - 1, 8, "Fecha Lmite Ract 3");
                                setStyleCell(sheet, headerTabla, currow - 1, 7);
                                setStyleCell(sheet, headerTabla, currow - 1, 8);
                                //currow++;                            
                                setExDat(sheet, currow, 7, ra3.getFechaCorte().toString());
                                setExDat(sheet, currow, 8, ra3.getFechaLimite().toString());
                                currow++;
                                currow++;
                            }
                        }
                        //Aqui modifique Jesus Ruelas 26 oct 2015

                        //autosize para la columna
                        if (autotam) {
                            sheet.autoSizeColumn(2);
                            sheet.autoSizeColumn(4);
                            sheet.autoSizeColumn(11);
                            autotam = false;
                        }

                        //reporteAvance.unidadaprendizajeImparteProfesor.profesor.pronumeroEmpleado
                        //                                setExDat(sheet, currow,3, tempListAux.get(0).getReporteAvance().getUnidadaprendizajeImparteProfesor().getProfesor().getPronumeroEmpleado() ); //numero empleado
                        //                                setExDat(sheet, currow,4, apellidoPP+ " "+apellidoPM+ " "+nompreP ); //nombre maestro
                        //                                setExDat(sheet, currow,5, tempListAux.get(0).getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo().getGponumero() + "-"+ auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getUiptipoSubgrupo()  + "-"+ auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getUipsubgrupo() ); //grupo numero

                        setExDat(sheet, currow, 1, "Clave unidad de aprendizaje");
                        setExDat(sheet, currow, 2, "Unidad de aprendizaje");
                        setExDat(sheet, currow, 3, "Area de conocimiento");
                        setExDat(sheet, currow, 4, "Grupo");
                        setExDat(sheet, currow, 5, "% Avance 1er reporte");
                        setExDat(sheet, currow, 6, "Fecha de elaboracin 1er RACT");
                        setExDat(sheet, currow, 7, "% Avance 2do reporte");
                        setExDat(sheet, currow, 8, "Fecha de elaboracin 2do RACT");
                        setExDat(sheet, currow, 9, "% Avance 3er reporte");
                        setExDat(sheet, currow, 10, "Fecha de elaboracin 3er RACT");
                        // para formatear toda la linea
                        for (int i = 1; i <= 10; i++) {
                            setStyleCell(sheet, headerTabla, currow, i);
                        }
                        //currow++;
                        currow++;

                        for (ReporteAvanceAux auxRacs : tempListAux) {

                            //marcamos bordes
                            for (int i = 1; i <= 10; i++) {
                                setExDat(sheet, currow, i, " ");
                            }
                            for (int i = 1; i <= 10; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }

                            //currow++;
                            int claveUnidadApren = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapclave();
                            String nombreUnidad = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                    .getUapnombre();
                            String areaCon = auxRacs.getAreaConocimiento().getAconombre();
                            //String grupo = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo().getAreaConocimiento();

                            int uniprofeTemp = 0;

                            uniprofeTemp = claveUnidadApren;
                            setExDat(sheet, currow, 1, claveUnidadApren); //clave
                            setExDat(sheet, currow, 2, nombreUnidad); //clave
                            setExDat(sheet, currow, 3, areaCon); //nombre unidad                           
                            setExDat(sheet, currow, 4,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getGponumero()
                                            + "-"
                                            + auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                                    .getUiptipoSubgrupo()
                                            + "-" + auxRacs.getReporteAvance()
                                                    .getUnidadaprendizajeImparteProfesor().getUipsubgrupo()); //grupo numero

                            //marcamos bordes
                            for (int i = 1; i <= 5; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }
                            //tienne que ser entregados/enviados
                            if (auxRacs.getStatusRact1() != null) {

                                System.out.println("Entro a enviados 1");
                                setExDat(sheet, currow, (3 + (1 * 2)), auxRacs.getPorcentAvanceRact1()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact1() != null) {
                                    setExDat(sheet, currow, (3 + (1 * 2) + 1),
                                            auxRacs.getFechaElaboracRact1().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (3 + (1 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (3 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (3 + (1 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (3 + (1 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (3 + (1 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (3 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (3 + (1 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact2() != null) {

                                setExDat(sheet, currow, (3 + (2 * 2)), auxRacs.getPorcentAvanceRact2()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact2() != null) {
                                    setExDat(sheet, currow, (3 + (2 * 2) + 1),
                                            auxRacs.getFechaElaboracRact2().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (3 + (2 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (3 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (3 + (2 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (3 + (2 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (3 + (2 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (3 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (3 + (2 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact3() != null) {

                                setExDat(sheet, currow, (3 + (3 * 2)), auxRacs.getPorcentAvanceRact3()); //% avance 7**
                                if (auxRacs.getFechaElaboracRact3() != null) {
                                    setExDat(sheet, currow, (3 + (3 * 2) + 1),
                                            auxRacs.getFechaElaboracRact3().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (3 + (3 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (3 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (3 + (3 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (3 + (3 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (3 + (3 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (3 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (3 + (3 * 2) + 1));
                            }

                            currow++;
                        }
                    }
                    // delfindelfor

                    //fin de codigo e imrpesion de cabezera
                    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
                }

            } // fin del for por plan de estudios     
        } // fin de si es por entregados if(entregados)
    } //fin de profesor

    if (criterio.equalsIgnoreCase("area_administrativa")) {
        HSSFSheet sheet = workbook.createSheet("Graficos");
        nombreLibro = "- Area administrativa";

        if (reporte.equalsIgnoreCase("entregados") || reporte.equalsIgnoreCase("noentregados")
                || reporte.equalsIgnoreCase("entregadosynoentregados") ||
                //Aqui modifique Jesus Ruelas 26 oct 2015
                reporte.equalsIgnoreCase("entregadosatiempo")
                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                || reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues") ||
                //Aqui modifique Jesus Ruelas 26 oct 2015
                reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Incompleto")
                || reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo e Incompleto")) {

            if (reporte.equalsIgnoreCase("entregados"))
                nombreLibro = "Entregados " + nombreLibro;

            if (reporte.equalsIgnoreCase("noentregados"))
                nombreLibro = "No Entregados " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosynoentregados"))
                nombreLibro = "Entregados Y No Entregados " + nombreLibro;

            //Aqui modifique Jesus Ruelas 26 oct 2015               
            if (reporte.equalsIgnoreCase("entregadosatiempo"))
                nombreLibro = "Entregados a tiempo " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosdespueslimite"))
                nombreLibro = "Entregados despus de fecha lmite " + nombreLibro;

            if (reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues"))
                nombreLibro = "Entregados a tiempo y despues de fecha lmite " + nombreLibro;
            //Aqui modifique Jesus Ruelas 26 oct 2015

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo"))
                nombreLibro = "Porcentaje de Avance Global Completo " + nombreLibro;

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Incompleto"))
                nombreLibro = "Porcentaje de Avance Global Incompleto " + nombreLibro;

            if (reporte.equalsIgnoreCase("Porcentaje de Avance Global Completo e Incompleto"))
                nombreLibro = "Porcentaje de Avance Global Completo e Incompleto " + nombreLibro;

            //definimos encabezado
            //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style);

            //mostraremos tabla con
            // Programas educativos //  Total Racs entregados // Total Esperados
            //preparamos informacion para insertar
            List<Programaeducativo> programasByUnidad = getProgramasByUnidad();
            List<Areaadministrativa> areasByProgEd = getAreasAdminByProgEdClave();

            //Aqui modifique Jesus Ruelas 28 oct 2015
            sheet = workbook.createSheet("Hoja 1");
            int currow = 15;
            //Aqui modifique Jesus Ruelas 28 oct 2015

            /* Programacion de Hojas*/
            for (Areaadministrativa areaAdmin : areasByProgEd) {
                if (selectAreaAdministrativa.contains(Integer.toString(areaAdmin.getAadid()))) {
                    //aqui creamos la hoja para el programa

                    ArrayList<ReporteAvanceAux> tempListAux = new ArrayList<ReporteAvanceAux>();

                    for (ReporteAvanceAux aux : listaAux) {
                        if (aux.CAAnombre.equalsIgnoreCase(areaAdmin.getAadnombre())) {
                            tempListAux.add(aux);
                        }
                    }

                    //// de este for
                    // para no imprirmir hojas vacias
                    if (tempListAux.size() > 0) {

                        //comente esta linea de abajo Jesus Ruelas - 28 oct 2015
                        //sheet = workbook.createSheet(areaConocimiento.getAconombre());

                        //sheet = cabezeraGeneralExcel(sheet,uabcLogo,style); lo moveremos al final de la hoja para que no sea mdoficada la imagen
                        setExDat(sheet, 8, 3,
                                "Concentrado de Reporte de Avance de Contenido Temtico de Entregados por Area administrativa");

                        boolean autotam = true;

                        //currow = currow + 3;

                        //Aqui modifique Jesus Ruelas 26 oct 2015
                        if (reporte.equalsIgnoreCase("entregadosatiempo")
                                || reporte.equalsIgnoreCase("entregadosdespueslimite")
                                || reporte.equalsIgnoreCase("entregadosatiempoenfechalimiteydespues")) {
                            if (ract.equalsIgnoreCase("1") || ract.equalsIgnoreCase("2")
                                    || ract.equalsIgnoreCase("3")) {

                                setExDat(sheet, currow, 1, "Fecha Corte");
                                setExDat(sheet, currow, 2, "Fecha Lmite");
                                setStyleCell(sheet, headerTabla, currow, 1);
                                setStyleCell(sheet, headerTabla, currow, 2);
                                currow++;
                                setExDat(sheet, currow, 1, tempListAux.get(0).getFechaCorte().toString());
                                setExDat(sheet, currow, 2, tempListAux.get(0).getFechaLimite().toString());
                                currow++;
                                currow++;
                            } else {
                                ReporteAux rep1 = new ReporteAux();
                                ReporteAux rep2 = new ReporteAux();
                                ReporteAux rep3 = new ReporteAux();

                                rep1.setNumRact(1);
                                rep2.setNumRact(2);
                                rep3.setNumRact(3);

                                rep1.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());
                                rep2.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());
                                rep3.setCescicloEscolar(tempListAux.get(0).getReporteAvance()
                                        .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                        .getCicloescolar().getCescicloEscolar());

                                ReporteAvanceAux ra1 = new ReporteAvanceAux();
                                ReporteAvanceAux ra2 = new ReporteAvanceAux();
                                ReporteAvanceAux ra3 = new ReporteAvanceAux();

                                ra1 = filtrosBeanHelper.TiempoLimiteYCorte(rep1);
                                ra2 = filtrosBeanHelper.TiempoLimiteYCorte(rep2);
                                ra3 = filtrosBeanHelper.TiempoLimiteYCorte(rep3);

                                setExDat(sheet, currow, 1, "Fecha Corte Ract 1");
                                setExDat(sheet, currow, 2, "Fecha Lmite Ract 1");
                                setStyleCell(sheet, headerTabla, currow, 1);
                                setStyleCell(sheet, headerTabla, currow, 2);
                                currow++;
                                setExDat(sheet, currow, 1, ra1.getFechaCorte().toString());
                                setExDat(sheet, currow, 2, ra1.getFechaLimite().toString());
                                //currow++;                       

                                setExDat(sheet, currow - 1, 4, "Fecha Corte Ract 2");
                                setExDat(sheet, currow - 1, 5, "Fecha Lmite Ract 2");
                                setStyleCell(sheet, headerTabla, currow - 1, 4);
                                setStyleCell(sheet, headerTabla, currow - 1, 5);
                                //currow++;                            
                                setExDat(sheet, currow, 4, ra2.getFechaCorte().toString());
                                setExDat(sheet, currow, 5, ra2.getFechaLimite().toString());
                                //currow++;                       

                                setExDat(sheet, currow - 1, 7, "Fecha Corte Ract 3");
                                setExDat(sheet, currow - 1, 8, "Fecha Lmite Ract 3");
                                setStyleCell(sheet, headerTabla, currow - 1, 7);
                                setStyleCell(sheet, headerTabla, currow - 1, 8);
                                //currow++;                            
                                setExDat(sheet, currow, 7, ra3.getFechaCorte().toString());
                                setExDat(sheet, currow, 8, ra3.getFechaLimite().toString());
                                currow++;
                                currow++;
                            }
                        }
                        //Aqui modifique Jesus Ruelas 26 oct 2015

                        //autosize para la columna
                        if (autotam) {
                            sheet.autoSizeColumn(2);
                            sheet.autoSizeColumn(4);
                            sheet.autoSizeColumn(11);
                            autotam = false;
                        }
                        // para formatear toda la linea
                        for (int i = 1; i <= 11; i++) {
                            setStyleCell(sheet, headerTabla, currow, i);
                        }
                        currow++;

                        //Boolean siguienteAreaAdmin = true;
                        String CAAnombreActual = "";

                        int uniprofeTemp = 0;
                        for (ReporteAvanceAux auxRacs : tempListAux) {

                            if (!(CAAnombreActual.equalsIgnoreCase(auxRacs.getCAAnombre()))) {
                                CAAnombreActual = auxRacs.getCAAnombre();
                                // currow=currow+2;

                                setExDat(sheet, currow, 1, "Area de conocimiento");
                                setExDat(sheet, currow, 2, "Area administrativa");
                                setStyleCell(sheet, headerTabla, currow, 1);
                                setStyleCell(sheet, headerTabla, currow, 2);
                                currow++;
                                setExDat(sheet, currow, 1, auxRacs.getAreaConocimiento().getAconombre()); //clave
                                setExDat(sheet, currow, 2, auxRacs.getCAAnombre()); //nombre unidad                            
                                currow = currow + 2;

                                //marcamos bordes
                                for (int i = 1; i <= 11; i++) {
                                    setExDat(sheet, currow, i, " ");
                                }
                                for (int i = 1; i <= 11; i++) {
                                    setStyleCell(sheet, borderstabla, currow, i);
                                }

                                setExDat(sheet, currow, 1, "Clave unidad de aprendizaje");
                                setExDat(sheet, currow, 2, "Unidad de aprendizaje");
                                setExDat(sheet, currow, 3, "No. de empleado");
                                setExDat(sheet, currow, 4, "Nombre del profesor");
                                setExDat(sheet, currow, 5, "Grupo");
                                setExDat(sheet, currow, 6, "% Avance 1er reporte");
                                setExDat(sheet, currow, 7, "Fecha de elaboracin 1er RACT");
                                setExDat(sheet, currow, 8, "% Avance 2do reporte");
                                setExDat(sheet, currow, 9, "Fecha de elaboracin 2do RACT");
                                setExDat(sheet, currow, 10, "% Avance 3er reporte");
                                setExDat(sheet, currow, 11, "Fecha de elaboracin 3er RACT");
                                // para formatear toda la linea
                                for (int i = 1; i <= 11; i++) {
                                    //tenemos qu aajustar texto
                                    //tenemos que centrar el texto
                                    //cambiar el color de fondo
                                    setStyleCell(sheet, headerTabla, currow, i);
                                }
                                currow++;
                            }
                            String nompreP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getPronombre();
                            String apellidoPP = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoPaterno();
                            String apellidoPM = auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                    .getProfesor().getProapellidoMaterno();
                            int claveUnidadApren = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje().getUapclave();
                            String nombreUnidad = auxRacs.getReporteAvance()
                                    .getUnidadaprendizajeImparteProfesor().getUnidadaprendizaje()
                                    .getUapnombre();

                            uniprofeTemp = claveUnidadApren;
                            setExDat(sheet, currow, 1, claveUnidadApren); //clave
                            setExDat(sheet, currow, 2, nombreUnidad); //nombre unidad
                            //reporteAvance.unidadaprendizajeImparteProfesor.profesor.pronumeroEmpleado
                            setExDat(sheet, currow, 3,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                            .getProfesor().getPronumeroEmpleado()); //numero empleado
                            setExDat(sheet, currow, 4, apellidoPP + " " + apellidoPM + " " + nompreP); //nombre maestro
                            setExDat(sheet, currow, 5,
                                    auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor().getGrupo()
                                            .getGponumero()
                                            + "-"
                                            + auxRacs.getReporteAvance().getUnidadaprendizajeImparteProfesor()
                                                    .getUiptipoSubgrupo()
                                            + "-" + auxRacs.getReporteAvance()
                                                    .getUnidadaprendizajeImparteProfesor().getUipsubgrupo()); //grupo numero

                            //marcamos bordes
                            for (int i = 1; i <= 5; i++) {
                                setStyleCell(sheet, borderstabla, currow, i);
                            }
                            //tienne que ser entregados/enviados
                            if (auxRacs.getStatusRact1() != null) {

                                System.out.println("Entro a enviados 1");
                                setExDat(sheet, currow, (4 + (1 * 2)), auxRacs.getPorcentAvanceRact1()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact1() != null) {
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1),
                                            auxRacs.getFechaElaboracRact1().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (1 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (1 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (1 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact2() != null) {

                                setExDat(sheet, currow, (4 + (2 * 2)), auxRacs.getPorcentAvanceRact2()); //% avance 7**

                                if (auxRacs.getFechaElaboracRact2() != null) {
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1),
                                            auxRacs.getFechaElaboracRact2().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (2 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (2 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (2 * 2) + 1));
                            }

                            if (auxRacs.getStatusRact3() != null) {

                                setExDat(sheet, currow, (4 + (3 * 2)), auxRacs.getPorcentAvanceRact3()); //% avance 7**
                                if (auxRacs.getFechaElaboracRact3() != null) {
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1),
                                            auxRacs.getFechaElaboracRact3().toString()); //fecha elabora 8***
                                } else {
                                    setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                }
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));

                            } else {
                                setExDat(sheet, currow, (4 + (3 * 2)), " "); //% avance 7**
                                setExDat(sheet, currow, (4 + (3 * 2) + 1), " "); //fecha elabora 8***
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2)));
                                setStyleCell(sheet, borderstabla, currow, (4 + (3 * 2) + 1));
                            }

                            currow++;
                        }
                    }
                    // delfindelfor

                    //fin de codigo e imrpesion de cabezera
                    sheet = cabezeraGeneralExcel(sheet, uabcLogo, style);
                }

            } // fin del for por plan de estudios     
        } // fin de si es por entregados if(entregados)
    } //fin de areas administrativas

    //finalizamos con
    //metodo para descargar el objeto
    System.out.println("Generando Excel");
    if (criterio != "" && reporte != "") {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        ExternalContext externalContext = facesContext.getExternalContext();
        externalContext.setResponseContentType("application/vnd.ms-excel");
        externalContext.setResponseHeader("Content-Disposition",
                "attachment; filename=\"" + nombreLibro + ".xls\"");
        //genera libro
        workbook.write(externalContext.getResponseOutputStream());
        facesContext.responseComplete();
    } else {
        System.out.println("No se Genero por: Criterio->" + criterio + " , Reporte->" + reporte);
    }
}

From source file:net.mindengine.oculus.frontend.service.report.ExcelReport.java

License:Open Source License

public void writeDocument(SavedRun savedRun, List<TestRunSearchData> testRuns) throws IOException {
    HSSFWorkbook workBook = new HSSFWorkbook();

    HSSFSheet sheet = workBook.createSheet();
    HSSFRow headerRow = sheet.createRow(0);
    HSSFCellStyle columnHeaderStyle = workBook.createCellStyle();
    columnHeaderStyle.setBorderTop((short) 1);
    columnHeaderStyle.setBorderLeft((short) 1);
    columnHeaderStyle.setBorderRight((short) 1);
    columnHeaderStyle.setBorderBottom((short) 1);
    columnHeaderStyle.setFillForegroundColor(HSSFColor.LIGHT_BLUE.index);
    columnHeaderStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    HSSFCell cell;/*from w w  w  . ja v a2s. c  o  m*/

    cell = headerRow.createCell((short) 0);
    cell.setCellValue(new HSSFRichTextString("Log"));
    cell.setCellStyle(columnHeaderStyle);

    cell = headerRow.createCell((short) 1);
    cell.setCellValue(new HSSFRichTextString("Test Run Id"));
    cell.setCellStyle(columnHeaderStyle);

    cell = headerRow.createCell((short) 2);
    cell.setCellValue(new HSSFRichTextString("Test Name"));
    cell.setCellStyle(columnHeaderStyle);

    cell = headerRow.createCell((short) 3);
    cell.setCellValue(new HSSFRichTextString("Project"));
    cell.setCellStyle(columnHeaderStyle);

    cell = headerRow.createCell((short) 4);
    cell.setCellValue(new HSSFRichTextString("Status"));
    cell.setCellStyle(columnHeaderStyle);

    cell = headerRow.createCell((short) 5);
    cell.setCellValue(new HSSFRichTextString("Designer"));
    cell.setCellStyle(columnHeaderStyle);

    cell = headerRow.createCell((short) 6);
    cell.setCellValue(new HSSFRichTextString("Runner"));
    cell.setCellStyle(columnHeaderStyle);

    cell = headerRow.createCell((short) 7);
    cell.setCellValue(new HSSFRichTextString("Start Time"));
    cell.setCellStyle(columnHeaderStyle);

    int id = 0;

    HSSFCellStyle rowPassedStyle = workBook.createCellStyle();
    rowPassedStyle.setBorderTop((short) 1);
    rowPassedStyle.setBorderLeft((short) 1);
    rowPassedStyle.setBorderRight((short) 1);
    rowPassedStyle.setBorderBottom((short) 1);
    rowPassedStyle.setFillForegroundColor(HSSFColor.LIGHT_GREEN.index);
    rowPassedStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    rowPassedStyle.setWrapText(true);

    HSSFCellStyle rowWarnStyle = workBook.createCellStyle();
    rowWarnStyle.setBorderTop((short) 1);
    rowWarnStyle.setBorderLeft((short) 1);
    rowWarnStyle.setBorderRight((short) 1);
    rowWarnStyle.setBorderBottom((short) 1);
    rowWarnStyle.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
    rowWarnStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    rowWarnStyle.setWrapText(true);

    HSSFCellStyle rowFailStyle = workBook.createCellStyle();
    rowFailStyle.setBorderTop((short) 1);
    rowFailStyle.setBorderLeft((short) 1);
    rowFailStyle.setBorderRight((short) 1);
    rowFailStyle.setBorderBottom((short) 1);
    rowFailStyle.setFillForegroundColor(HSSFColor.RED.index);
    rowFailStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    rowFailStyle.setWrapText(true);

    HSSFCellStyle cellStyle = null;
    for (TestRunSearchData run : testRuns) {
        if (run.getTestRunStatus().equals("PASSED")) {
            cellStyle = rowPassedStyle;
        } else if (run.getTestRunStatus().equals("FAILED")) {
            cellStyle = rowFailStyle;
        } else
            cellStyle = rowWarnStyle;
        id++;
        HSSFRow row = sheet.createRow(id);

        cell = row.createCell((short) 0);
        cell.setCellValue(new HSSFRichTextString(
                "http://" + config.getOculusServerUrl() + "/report/report-" + run.getTestRunId()));
        cell.setCellStyle(cellStyle);

        cell = row.createCell((short) 1);
        cell.setCellValue(run.getTestRunId());
        cell.setCellStyle(cellStyle);

        cell = row.createCell((short) 2);
        cell.setCellValue(new HSSFRichTextString(run.getFetchTestName()));
        cell.setCellStyle(cellStyle);

        cell = row.createCell((short) 3);
        cell.setCellValue(new HSSFRichTextString(run.getFetchProjectName()));
        cell.setCellStyle(cellStyle);

        cell = row.createCell((short) 4);
        cell.setCellValue(new HSSFRichTextString(run.getTestRunStatus()));
        cell.setCellStyle(cellStyle);

        cell = row.createCell((short) 5);
        cell.setCellValue(new HSSFRichTextString(run.getDesignerName()));
        cell.setCellStyle(cellStyle);

        cell = row.createCell((short) 6);
        cell.setCellValue(new HSSFRichTextString(run.getRunnerName()));
        cell.setCellStyle(cellStyle);

        cell = row.createCell((short) 7);
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy  HH:mm:ss");
        cell.setCellValue(new HSSFRichTextString(sdf.format(run.getTestRunStartTime())));
        cell.setCellStyle(cellStyle);

    }

    workBook.write(outputStream);

}

From source file:net.sf.jasperreports.engine.export.JRXlsExporter.java

License:Open Source License

protected HSSFCellStyle getLoadedCellStyle(StyleInfo style) {
    HSSFCellStyle cellStyle = loadedCellStyles.get(style);
    if (cellStyle == null) {
        cellStyle = workbook.createCellStyle();

        cellStyle.setFillForegroundColor(style.backcolor);
        cellStyle.setFillPattern(style.mode);
        cellStyle.setAlignment(style.horizontalAlignment);
        cellStyle.setVerticalAlignment(style.verticalAlignment);
        cellStyle.setRotation(style.rotation);
        cellStyle.setFont(style.font);/*  w w w . jav  a2 s . c o  m*/
        cellStyle.setWrapText(style.lcWrapText);
        cellStyle.setLocked(style.lcCellLocked);
        cellStyle.setHidden(style.lcCellHidden);

        if (style.hasDataFormat()) {
            cellStyle.setDataFormat(style.getDataFormat());
        }

        boolean isIgnoreCellBorder = getCurrentItemConfiguration().isIgnoreCellBorder();
        if (!isIgnoreCellBorder) {
            BoxStyle box = style.box;
            cellStyle.setBorderTop(box.borderStyle[BoxStyle.TOP]);
            cellStyle.setTopBorderColor(box.borderColour[BoxStyle.TOP]);
            cellStyle.setBorderLeft(box.borderStyle[BoxStyle.LEFT]);
            cellStyle.setLeftBorderColor(box.borderColour[BoxStyle.LEFT]);
            cellStyle.setBorderBottom(box.borderStyle[BoxStyle.BOTTOM]);
            cellStyle.setBottomBorderColor(box.borderColour[BoxStyle.BOTTOM]);
            cellStyle.setBorderRight(box.borderStyle[BoxStyle.RIGHT]);
            cellStyle.setRightBorderColor(box.borderColour[BoxStyle.RIGHT]);
        }

        loadedCellStyles.put(style, cellStyle);
    }
    return cellStyle;
}

From source file:net.sf.jasperreports.engine.export.JRXlsMetadataExporter.java

License:Open Source License

protected HSSFCellStyle getLoadedCellStyle(StyleInfo style) {
    HSSFCellStyle cellStyle = loadedCellStyles.get(style);
    if (cellStyle == null) {

        cellStyle = workbook.createCellStyle();
        cellStyle.setFillForegroundColor(style.backcolor);
        cellStyle.setFillPattern(style.mode);
        cellStyle.setAlignment(style.horizontalAlignment);
        cellStyle.setVerticalAlignment(style.verticalAlignment);
        cellStyle.setRotation(style.rotation);
        cellStyle.setFont(style.font);/*from  w  ww  .j  a  v  a 2s  .  c  o m*/
        cellStyle.setWrapText(style.lcWrapText);
        cellStyle.setLocked(style.lcCellLocked);
        cellStyle.setHidden(style.lcCellHidden);

        if (style.hasDataFormat()) {
            cellStyle.setDataFormat(style.getDataFormat());
        }

        if (!getCurrentItemConfiguration().isIgnoreCellBorder()) {
            BoxStyle box = style.box;
            cellStyle.setBorderTop(box.borderStyle[BoxStyle.TOP]);
            cellStyle.setTopBorderColor(box.borderColour[BoxStyle.TOP]);
            cellStyle.setBorderLeft(box.borderStyle[BoxStyle.LEFT]);
            cellStyle.setLeftBorderColor(box.borderColour[BoxStyle.LEFT]);
            cellStyle.setBorderBottom(box.borderStyle[BoxStyle.BOTTOM]);
            cellStyle.setBottomBorderColor(box.borderColour[BoxStyle.BOTTOM]);
            cellStyle.setBorderRight(box.borderStyle[BoxStyle.RIGHT]);
            cellStyle.setRightBorderColor(box.borderColour[BoxStyle.RIGHT]);
        }
        loadedCellStyles.put(style, cellStyle);
    }
    return cellStyle;
}

From source file:org.adempiere.impexp.AbstractExcelExporter.java

License:Open Source License

private HSSFCellStyle getHeaderStyle(int col) {
    String key = "header-" + col;
    HSSFCellStyle cs_header = m_styles.get(key);
    if (cs_header == null) {
        HSSFFont font_header = getFont(true);
        cs_header = m_workbook.createCellStyle();
        cs_header.setFont(font_header);//from  ww w .  j a  v  a2  s .c om
        cs_header.setBorderLeft((short) 2);
        cs_header.setBorderTop((short) 2);
        cs_header.setBorderRight((short) 2);
        cs_header.setBorderBottom((short) 2);
        cs_header.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));
        cs_header.setWrapText(true);
        m_styles.put(key, cs_header);
    }
    return cs_header;
}

From source file:org.anyframe.logmanager.web.LogManagerController.java

License:Apache License

/**
 * log data export for excel file type/*from   ww w.  j a  va2  s  .  c om*/
 * 
 * @param searchCondition
 * @param model
 * @param request
 * @return
 * @throws Exception
 */
@RequestMapping(params = "method=xlsExport")
public void xlsExport(LogSearchCondition searchCondition, Model model, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    searchCondition.setPageIndex(-1);
    searchCondition.setCollection(searchCondition.getRepositoryName());

    String fileName = null;
    String sDate = null;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss", new Locale("ko_KR"));
    sDate = sdf.format(new Date());
    StringBuffer sb = new StringBuffer();
    sb.append(searchCondition.getAppName().substring(searchCondition.getAppName().lastIndexOf("/") + 1));
    sb.append("_").append(searchCondition.getCollection()).append("_").append(sDate).append(".xls");
    fileName = sb.toString();

    SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-ddHHmm");
    logger.debug("from:{}",
            searchCondition.getFromDate() + searchCondition.getFromHour() + searchCondition.getFromMinute());
    logger.debug("to:{}",
            searchCondition.getToDate() + searchCondition.getToHour() + searchCondition.getToMinute());
    if (searchCondition.isUseFromDate())
        searchCondition.setFromDateTime(dateTimeFormat.parse(searchCondition.getFromDate()
                + searchCondition.getFromHour() + searchCondition.getFromMinute()));
    if (searchCondition.isUseToDate())
        searchCondition.setToDateTime(dateTimeFormat.parse(
                searchCondition.getToDate() + searchCondition.getToHour() + searchCondition.getToMinute()));

    List<LogDataMap> resultList = service.searchAnalysisLog(searchCondition);

    response.reset();
    response.setContentType("application/x-msexcel;charset=MS949");
    // response.setContentType("application/octet-stream");
    String userAgent = request.getHeader("User-Agent");

    if (userAgent.indexOf("MSIE 5.5") > -1) {
        response.setHeader("Content-Disposition", "filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\";");
    } else if (userAgent.indexOf("MSIE") > -1) {
        response.setHeader("Content-Disposition",
                "attachment; filename=\"" + java.net.URLEncoder.encode(fileName, "UTF-8") + "\";");
    } else {
        response.setHeader("Content-Disposition",
                "attachment; filename=\"" + new String(fileName.getBytes("euc-kr"), "latin1") + "\";");
    }
    response.setHeader("Content-Description", "JSP Generated Data");
    response.setHeader("Content-Transfer-Encoding", "binary;");
    response.setHeader("Pragma", "no-cache;");
    response.setHeader("Expires", "-1;");

    HSSFWorkbook workbook = new HSSFWorkbook();
    HSSFSheet sheet = workbook.createSheet(fileName);

    OutputStream fileOut = null;
    try {
        fileOut = response.getOutputStream();
        HSSFRow row = null;
        HSSFRow headerRow = null;

        HSSFDataFormat df = workbook.createDataFormat();

        HSSFCellStyle headerStyle = workbook.createCellStyle();
        HSSFFont boldFont = workbook.createFont();
        boldFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        headerStyle.setFont(boldFont);
        headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);

        HSSFCellStyle style = workbook.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
        style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

        HSSFCellStyle dateStyle = workbook.createCellStyle();
        dateStyle.setDataFormat(df.getFormat("yyyy-mm-dd h:mm:ss.000"));
        dateStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
        dateStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

        HSSFCellStyle messageStyle = workbook.createCellStyle();
        messageStyle.setWrapText(true);
        messageStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
        messageStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

        HSSFCell cell;
        HSSFCell headerCell;

        short width = 265;

        Iterator<String> j = null;
        String key = null;
        int cellIndex = 0;
        int listSize = 0;

        String level = null;
        Date timestamp = null;
        String message = null;

        if (resultList != null) {
            listSize = resultList.size();
            for (int i = 0; i < listSize; i++) {
                LogDataMap log = (LogDataMap) resultList.get(i);
                if (i == 0) {
                    headerRow = sheet.createRow(i); // level header
                    sheet.setColumnWidth(0, 7 * width);
                    headerCell = headerRow.createCell(0);
                    HSSFRichTextString headerValue = new HSSFRichTextString("level");
                    headerCell.setCellValue(headerValue);
                    headerCell.setCellStyle(headerStyle);

                    headerCell = headerRow.createCell(1); // time stamp header
                    sheet.setColumnWidth(1, 24 * width);
                    headerValue = new HSSFRichTextString("timestamp");
                    headerCell.setCellValue(headerValue);
                    headerCell.setCellStyle(headerStyle);

                    headerCell = headerRow.createCell(2); // message header
                    sheet.setColumnWidth(2, 70 * width);
                    headerValue = new HSSFRichTextString("message");
                    headerCell.setCellValue(headerValue);
                    headerCell.setCellStyle(headerStyle);
                }

                row = sheet.createRow(i + 1);

                // level
                level = (String) log.get("level");
                cell = row.createCell(0);
                cell.setCellStyle(style);
                cell.setCellType(HSSFCell.CELL_TYPE_STRING);
                cell.setCellValue(level);

                // timestamp
                timestamp = (Date) log.get("timestamp");
                cell = row.createCell(1);
                cell.setCellStyle(dateStyle);
                cell.setCellValue(timestamp);

                // message
                message = (String) log.get("message");
                HSSFRichTextString messageValue = new HSSFRichTextString(message);
                cell = row.createCell(2);
                cell.setCellStyle(messageStyle);
                cell.setCellType(HSSFCell.CELL_TYPE_STRING);
                cell.setCellValue(messageValue);

                cellIndex = 3;
                j = log.keySet().iterator();
                while (j.hasNext()) {
                    key = j.next();
                    if ("_id".equals(key) || "message".equals(key) || "timestamp".equals(key)
                            || "level".equals(key)) {
                        continue;
                    }
                    //logger.debug("key=" + key);
                    if (i == 0) {
                        sheet.setColumnWidth(cellIndex, 20 * width);

                        headerCell = headerRow.createCell(cellIndex);
                        HSSFRichTextString headerValue = new HSSFRichTextString(key);
                        headerCell.setCellValue(headerValue);
                        headerCell.setCellStyle(headerStyle);
                    }
                    cell = row.createCell(cellIndex);
                    Object value = log.get(key);
                    if (value instanceof Date) {
                        cell.setCellStyle(dateStyle);
                        cell.setCellValue((Date) value);
                    } else {
                        cell.setCellStyle(style);
                        cell.setCellType(HSSFCell.CELL_TYPE_STRING);
                        cell.setCellValue((String) log.get(key));
                    }

                    cellIndex++;
                }
            }
            workbook.write(fileOut);
        }
    } catch (Exception e) {
        throw e;
    } finally {
        try {
            if (fileOut != null) {
                fileOut.flush();
                fileOut.close();
            }
        } catch (IOException ex) {
            logger.warn(ex.getMessage(), ex);
        }
    }
}

From source file:org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPStyle.java

License:Apache License

/**
 * Override of Initialize() implementation
 * @param attributes the array of Attribute instances; may be empty, will
 *                  never be null/*w w w .j  a  va2  s  .c  om*/
 * @param parent the parent ElementProcessor; may be null
 * @exception IOException if anything is wrong
 */
public void initialize(final Attribute[] attributes, final ElementProcessor parent) throws IOException {
    super.initialize(attributes, parent);

    EPStyleRegion sregion = (EPStyleRegion) parent;

    if (sregion.isValid()) {
        Hashtable colorhash = sregion.getColorHash();

        HSSFCellStyle style = sregion.getStyle();
        short cnvhalign = convertAlignment(getHorizontalAlignment().getCode());
        style.setAlignment(cnvhalign);
        short cnvvalign = convertVAlignment(getVerticalAlignment().getCode());
        style.setVerticalAlignment(cnvvalign);
        style.setFillPattern((short) getShade());

        Workbook workbook = getWorkbook();
        HSSFDataFormat dataformat = workbook.createDataFormat();
        if (getShade() == 1) {
            // TODO: change to constant when upgrade to new HSSF
            // solid w/foreground, bg doesn't matter
            if (getLogger().isDebugEnabled()) {
                getLogger().debug("shade = 1");
            }
            HSSFColor color = (HSSFColor) colorhash.get(getBackgroundColor().toString());
            if (color == null) {
                if (getLogger().isDebugEnabled()) {
                    getLogger().debug("s1 BG couldn't find color for " + getBackgroundColor().toString());
                }
                color = new HSSFColor.WHITE();
            }
            style.setFillForegroundColor(color.getIndex());
            color = (HSSFColor) colorhash.get(getPatternColor().toString());
            if (color == null) {
                if (getLogger().isDebugEnabled()) {
                    getLogger().debug("s1 PC couldn't find color for " + getPatternColor().toString());
                }
                color = new HSSFColor.BLACK();
            }
            style.setFillBackgroundColor(color.getIndex());
        } else {
            HSSFColor color = (HSSFColor) colorhash.get(getBackgroundColor().toString());
            if (color == null) {
                if (getLogger().isDebugEnabled()) {
                    getLogger().debug("BG couldn't find color for " + getBackgroundColor().toString());
                }
                color = new HSSFColor.BLACK();
            }
            style.setFillBackgroundColor(color.getIndex());
            color = (HSSFColor) colorhash.get(getPatternColor().toString());
            if (color == null) {
                if (getLogger().isDebugEnabled()) {
                    getLogger().debug("PC couldn't find color for " + getPatternColor().toString());
                }
                color = new HSSFColor.WHITE();
            }
            style.setFillForegroundColor(color.getIndex());
        }
        style.setWrapText(getWrapText());
        style.setLocked(true);

        String format = null;
        try {
            format = getFormat();
        } catch (NullPointerException e) {
            format = _general_format;
        }

        if (!_general_format.equals(format)) {
            short valuenumber;
            format = kludgeForGnumericMisformats(format);
            format = kludgeForGnumericDateDivergence(format);
            if (getLogger().isDebugEnabled()) {
                getLogger().debug("setting format to " + format);
            }
            Object o = workbook.getValidate(format, dataformat.getFormat(format));
            Short sh = null;
            sh = (Short) o;
            valuenumber = sh.shortValue();
            style.setDataFormat(valuenumber);
        }
    } else {
        invalid = true;
    }
}

From source file:org.deployom.core.AuditService.java

License:Open Source License

public HSSFWorkbook saveAudit() {

    // Create book
    HSSFWorkbook workbook = new HSSFWorkbook();
    HSSFCreationHelper creationHelper = workbook.getCreationHelper();

    // Default Style
    HSSFCellStyle style = workbook.createCellStyle();
    style.setWrapText(true);
    HSSFFont font = workbook.createFont();
    font.setFontName("Courier New");
    style.setFont(font);/*from w  w  w  . ja va 2  s  .co m*/
    style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    style.setBorderTop(HSSFCellStyle.BORDER_THIN);
    style.setBorderRight(HSSFCellStyle.BORDER_THIN);
    style.setBorderLeft(HSSFCellStyle.BORDER_THIN);

    // Header Style
    HSSFCellStyle styleHeader = workbook.createCellStyle();
    styleHeader.cloneStyleFrom(style);
    styleHeader.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    font = workbook.createFont();
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    font.setColor(HSSFColor.WHITE.index);
    styleHeader.setFillForegroundColor(IndexedColors.BLACK.getIndex());
    styleHeader.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    styleHeader.setFont(font);

    // Error Style
    HSSFCellStyle styleError = workbook.createCellStyle();
    styleError.cloneStyleFrom(style);
    styleError.setFillForegroundColor(IndexedColors.CORAL.getIndex());
    styleError.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    styleError.setWrapText(true);

    // Link Style
    HSSFCellStyle styleLink = workbook.createCellStyle();
    styleLink.cloneStyleFrom(style);
    font = workbook.createFont();
    font.setUnderline(HSSFFont.U_SINGLE);
    font.setColor(IndexedColors.BLUE.getIndex());
    styleLink.setFont(font);

    // Create Summary
    HSSFSheet summarySheet = workbook.createSheet("Summary");
    int summaryRownum = 0;
    int summaryCellnum = 0;

    //Create a new row in current sheet
    Row summaryRow = summarySheet.createRow(summaryRownum++);

    // 0
    Cell summaryCell = summaryRow.createCell(summaryCellnum++);
    summaryCell.setCellValue("Job");
    summaryCell.setCellStyle(styleHeader);

    // 1
    summaryCell = summaryRow.createCell(summaryCellnum++);
    summaryCell.setCellValue("Finished");
    summaryCell.setCellStyle(styleHeader);

    // 2
    summaryCell = summaryRow.createCell(summaryCellnum++);
    summaryCell.setCellValue("Errors");
    summaryCell.setCellStyle(styleHeader);

    for (Job job : releaseService.getJobs()) {

        // Open Job
        JobService jobService = new JobService(siteService.getSiteName(), job.getJobName());

        // Create Sheet
        HSSFSheet sheet = workbook.createSheet(job.getJobName());

        int rownum = 0;
        int cellnum = 0;
        int errors = 0;

        //Create a new row in current sheet
        Row row = sheet.createRow(rownum++);

        // 0
        Cell cell = row.createCell(cellnum++);
        cell.setCellValue("Host");
        cell.setCellStyle(styleHeader);

        // 1
        cell = row.createCell(cellnum++);
        cell.setCellValue("Service");
        cell.setCellStyle(styleHeader);

        // 2
        cell = row.createCell(cellnum++);
        cell.setCellValue("Command");
        cell.setCellStyle(styleHeader);

        // 3
        cell = row.createCell(cellnum++);
        cell.setCellValue("Executable");
        cell.setCellStyle(styleHeader);

        // 4
        cell = row.createCell(cellnum++);
        cell.setCellValue("Error");
        cell.setCellStyle(styleHeader);

        // 5
        cell = row.createCell(cellnum++);
        cell.setCellValue("Output");
        cell.setCellStyle(styleHeader);

        // Check all hosts
        for (Host host : jobService.getHosts()) {

            // Check all services
            for (Service service : host.getServices()) {

                // Get a Commands
                for (Command command : service.getCommands()) {

                    //Create a new row in current sheet
                    row = sheet.createRow(rownum++);
                    cellnum = 0;

                    // 0
                    cell = row.createCell(cellnum++);
                    cell.setCellValue(host.getHostName());
                    cell.setCellStyle(style);

                    // 1
                    cell = row.createCell(cellnum++);
                    cell.setCellValue(service.getServiceName());
                    cell.setCellStyle(style);

                    // 2
                    cell = row.createCell(cellnum++);
                    cell.setCellValue(command.getTitle());
                    cell.setCellStyle(style);

                    // 3
                    cell = row.createCell(cellnum++);
                    cell.setCellValue(command.getExec());
                    cell.setCellStyle(style);

                    // 4
                    cell = row.createCell(cellnum++);
                    cell.setCellValue("N");
                    cell.setCellStyle(style);

                    // 5
                    cell = row.createCell(cellnum++);
                    if (command.getOut().length() > 1024) {
                        cell.setCellValue(command.getOut().substring(0, 1024) + "...");
                    } else {
                        cell.setCellValue(command.getOut());
                    }
                    cell.setCellStyle(style);

                    // Error
                    if (command.isError() == true) {
                        row.getCell(0).setCellStyle(styleError);
                        row.getCell(1).setCellStyle(styleError);
                        row.getCell(2).setCellStyle(styleError);
                        row.getCell(3).setCellStyle(styleError);
                        row.getCell(4).setCellStyle(styleError);
                        row.getCell(5).setCellStyle(styleError);
                        row.getCell(4).setCellValue("Y");
                        errors++;
                    }
                }
            }
        }

        // Set Size
        sheet.setColumnWidth(0, 6000);
        sheet.setColumnWidth(1, 4000);
        sheet.setColumnWidth(2, 8000);
        sheet.setColumnWidth(3, 14000);
        sheet.setColumnWidth(4, 3000);
        sheet.setColumnWidth(5, 20000);

        // Summary
        summaryRow = summarySheet.createRow(summaryRownum++);
        summaryCellnum = 0;

        // 0
        summaryCell = summaryRow.createCell(summaryCellnum++);
        summaryCell.setCellValue(job.getJobName());
        summaryCell.setCellStyle(style);

        // Set Link
        HSSFHyperlink link = creationHelper.createHyperlink(Hyperlink.LINK_DOCUMENT);
        link.setAddress("" + job.getJobName() + "!A1");
        summaryCell.setHyperlink(link);
        summaryCell.setCellStyle(styleLink);

        // 1
        summaryCell = summaryRow.createCell(summaryCellnum++);
        summaryCell.setCellValue(jobService.getJob().getFinished());
        summaryCell.setCellStyle(style);

        // 2
        summaryCell = summaryRow.createCell(summaryCellnum++);
        summaryCell.setCellValue(errors);
        summaryCell.setCellStyle(style);

        // If errors found
        if (errors > 0) {
            summaryRow.getCell(0).setCellStyle(styleError);
            summaryRow.getCell(1).setCellStyle(styleError);
            summaryRow.getCell(2).setCellStyle(styleError);
        }
    }

    // Set Summary Size
    summarySheet.setColumnWidth(0, 6000);
    summarySheet.setColumnWidth(1, 10000);
    summarySheet.setColumnWidth(2, 4000);

    // Save
    try {
        FileOutputStream out = new FileOutputStream(new File(getFileName()));
        workbook.write(out);
        out.close();
        logger.log(Level.INFO, "{0} generated successfully..", getFileName());

        return workbook;
    } catch (FileNotFoundException ex) {
        logger.log(Level.WARNING, "Audit: {0}", ex);
    } catch (IOException ex) {
        logger.log(Level.WARNING, "Audit: {0}", ex);
    }

    return null;
}

From source file:org.displaytag.export.excel.ExcelUtils.java

License:Open Source License

/**
 * We cache the styles; they are expensive to construct.
 * @param properties props for this run//w  ww.j av  a 2s.  c  om
 */
public void initCellStyles(TableProperties properties) {
    // Integer
    HSSFCellStyle style = getNewCellStyle();
    style.setAlignment(CellStyle.ALIGN_RIGHT);
    style.setDataFormat(
            HSSFDataFormat.getBuiltinFormat(properties.getProperty(ExcelUtils.EXCEL_FORMAT_INTEGER)));
    this.cellStyles.put(STYLE_INTEGER, style);

    // NUMBER
    style = getNewCellStyle();
    style.setAlignment(CellStyle.ALIGN_RIGHT);
    style.setDataFormat(
            HSSFDataFormat.getBuiltinFormat(properties.getProperty(ExcelUtils.EXCEL_FORMAT_NUMBER)));
    this.cellStyles.put(STYLE_NUMBER, style);

    // style = HSSFDataFormat.getBuiltinFormat("0.00%");

    // Date
    style = getNewCellStyle();
    style.setAlignment(CellStyle.ALIGN_RIGHT);
    style.setDataFormat(HSSFDataFormat.getBuiltinFormat(properties.getProperty(ExcelUtils.EXCEL_FORMAT_DATE)));
    style.setAlignment(CellStyle.ALIGN_RIGHT);
    this.cellStyles.put(STYLE_DATE, style);

    // Long text
    style = getNewCellStyle(); // http://jakarta.apache.org/poi/hssf/quick-guide.html#NewLinesInCells
    style.setWrapText(true);
    this.cellStyles.put(STYLE_LONGSTRING, style);

    // Regular text
    this.cellStyles.put(STYLE_STRING, getNewCellStyle());

    this.wrapAt = Integer.valueOf(properties.getProperty(ExcelUtils.EXCEL_WRAPAT));
}