Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package main.resources; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import main.Appi; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.util.CellReference; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellUtil; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * * @author home */ public class FileExcel { public static void generaXlsx() throws IOException { //nombre del archivo de Excel String nombreArchivo = "quincena.xlsx"; String nombreHoja1 = "fecha";//nombre de la hoja1 Workbook libroTrabajo = new XSSFWorkbook(); Sheet hoja1 = libroTrabajo.createSheet(nombreHoja1); Row row = hoja1.createRow((short) 1); //row.setHeightInPoints(10); //alto de celda Cell cell = row.createCell((short) 1); Cell cell1 = row.createCell((short) 1); cell.setCellValue("Asistencia fecha xxxxxx"); CellStyle cellStyle = libroTrabajo.createCellStyle(); cellStyle.setAlignment(CellStyle.ALIGN_CENTER); cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); //cellStyle.setFillBackgroundColor(IndexedColors.BLUE_GREY.getIndex()); //cellStyle.setFillPattern(CellStyle.BIG_SPOTS); cellStyle.setFillForegroundColor(IndexedColors.ORANGE.getIndex()); cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); cellStyle.setBorderBottom(CellStyle.BORDER_THIN); cellStyle.setBottomBorderColor(IndexedColors.AUTOMATIC.getIndex()); cellStyle.setBorderLeft(CellStyle.BORDER_THIN); cellStyle.setLeftBorderColor(IndexedColors.AUTOMATIC.getIndex()); cellStyle.setBorderRight(CellStyle.BORDER_THIN); cellStyle.setRightBorderColor(IndexedColors.AUTOMATIC.getIndex()); cellStyle.setBorderTop(CellStyle.BORDER_THIN); cellStyle.setTopBorderColor(IndexedColors.AUTOMATIC.getIndex()); hoja1.addMergedRegion(new CellRangeAddress(1, // first row (0-based) primera fila 1, //lasto row (0-based) ultima fila 1, //first column (0-based) numero de columna inicial 5 //last column (0-based) numero de columna final )); cell.setCellStyle(cellStyle); cell1.setCellStyle(cellStyle); //escribir este libro en un OutputStream. try (FileOutputStream fileOut = new FileOutputStream(nombreArchivo)) { //escribir este libro en un OutputStream. libroTrabajo.write(fileOut); fileOut.flush(); } } public void excelDia() throws FileNotFoundException, IOException { String nombreFile = "quincena.xlsx"; String nombreHoja = "dia x mes x ao x"; Workbook libro = new XSSFWorkbook(); Sheet hoja = libro.createSheet(nombreHoja); Font negrita = libro.createFont(); negrita.setBoldweight(Font.BOLDWEIGHT_BOLD); CellStyle estilo = libro.createCellStyle(); estilo.setAlignment(CellStyle.ALIGN_CENTER); estilo.setFillForegroundColor(IndexedColors.GREEN.getIndex()); estilo.setFillPattern(CellStyle.SOLID_FOREGROUND); estilo.setBorderBottom(CellStyle.BORDER_THIN); estilo.setBottomBorderColor(IndexedColors.AUTOMATIC.getIndex()); estilo.setBorderLeft(CellStyle.BORDER_THIN); estilo.setLeftBorderColor(IndexedColors.AUTOMATIC.getIndex()); estilo.setBorderRight(CellStyle.BORDER_THIN); estilo.setRightBorderColor(IndexedColors.AUTOMATIC.getIndex()); estilo.setBorderTop(CellStyle.BORDER_THIN); estilo.setTopBorderColor(IndexedColors.AUTOMATIC.getIndex()); estilo.setFont(negrita); CellStyle bordes = libro.createCellStyle(); bordes.setAlignment(CellStyle.ALIGN_LEFT); bordes.setBorderBottom(CellStyle.BORDER_THIN); bordes.setBottomBorderColor(IndexedColors.AUTOMATIC.getIndex()); bordes.setBorderLeft(CellStyle.BORDER_THIN); bordes.setLeftBorderColor(IndexedColors.AUTOMATIC.getIndex()); bordes.setBorderRight(CellStyle.BORDER_THIN); bordes.setRightBorderColor(IndexedColors.AUTOMATIC.getIndex()); bordes.setBorderTop(CellStyle.BORDER_THIN); bordes.setTopBorderColor(IndexedColors.AUTOMATIC.getIndex()); CellStyle estilo2 = libro.createCellStyle(); estilo2.setAlignment(CellStyle.ALIGN_CENTER); estilo2.setBorderBottom(CellStyle.BORDER_THIN); estilo2.setBottomBorderColor(IndexedColors.AUTOMATIC.getIndex()); estilo2.setBorderLeft(CellStyle.BORDER_THIN); estilo2.setLeftBorderColor(IndexedColors.AUTOMATIC.getIndex()); estilo2.setBorderRight(CellStyle.BORDER_THIN); estilo2.setRightBorderColor(IndexedColors.AUTOMATIC.getIndex()); estilo2.setBorderTop(CellStyle.BORDER_THIN); estilo2.setTopBorderColor(IndexedColors.AUTOMATIC.getIndex()); estilo2.setAlignment(CellStyle.ALIGN_CENTER); estilo2.setFillForegroundColor(IndexedColors.YELLOW.getIndex()); estilo2.setFillPattern(CellStyle.SOLID_FOREGROUND); estilo2.setFont(negrita); CellStyle borderBot = libro.createCellStyle(); borderBot.setBorderBottom(CellStyle.BORDER_THIN); borderBot.setBottomBorderColor(IndexedColors.AUTOMATIC.getIndex()); Row row = hoja.createRow(1); //Row row1 = hoja.createRow(2); //empleados faltas Appi app = new Appi(); Date Fecha = new Date(); DateFormat formato = new SimpleDateFormat("YYYY-MM-dd"); String fechaActual = formato.format(Fecha); ArrayList<Empleado> faltas = app.faltas(fechaActual);//obtengo listado de empleados String grupoBandera = ""; String maestro = ""; int pRow = 3; if (!faltas.isEmpty()) { Cell celda = row.createCell(3); Cell celda2 = row.createCell(4); Cell celda3 = row.createCell(5); Cell celda4 = row.createCell(6); Cell celda5 = row.createCell(7); combinarceldas(hoja, 1, 1, 3, 7); celda.setCellValue("Asistencia " + fechaActual); celda.setCellStyle(estilo); celda2.setCellStyle(estilo); celda3.setCellStyle(estilo); celda4.setCellStyle(estilo); celda5.setCellStyle(estilo); grupoBandera = faltas.get(0).getGrupo(); //encabezados Row row2 = hoja.createRow(pRow); Cell cell = row2.createCell(1); cell.setCellValue("Nficha"); cell.setCellStyle(estilo2); Cell cell1 = row2.createCell(2); cell1.setCellValue("1er Apellido"); cell1.setCellStyle(estilo2); Cell cell2 = row2.createCell(3); cell2.setCellValue("2do Apellido"); cell2.setCellStyle(estilo2); Cell cell3 = row2.createCell(4); cell3.setCellValue("1er Nombre"); cell3.setCellStyle(estilo2); Cell cell4 = row2.createCell(5); cell4.setCellValue("2do Nombre"); cell4.setCellStyle(estilo2); Cell cell5 = row2.createCell(6); cell5.setCellValue("Identificacion"); cell5.setCellStyle(estilo2); Cell cell6 = row2.createCell(7); cell6.setCellValue("Da"); cell6.setCellStyle(estilo2); Cell cell7 = row2.createCell(8); cell7.setCellValue("Cargo"); cell7.setCellStyle(estilo2); Cell cell8 = row2.createCell(9); cell8.setCellValue("Grupo"); cell8.setCellStyle(estilo2); } Empleado emp = null; for (int i = 0; i < faltas.size(); i++) { //datos emp = (Empleado) faltas.get(i); Grupo grupo = app.grupo(emp.getGrupo()); if (!grupoBandera.equals(emp.getGrupo())) { grupoBandera = emp.getGrupo(); pRow = pRow + 2; //frima maestro Row row4 = hoja.createRow(pRow); Cell celda9 = row4.createCell(1); combinarceldas(hoja, pRow, pRow, 1, 3); celda9.setCellValue("Maestro Grupo:"); celda9.setCellStyle(estilo); Cell celda10 = row4.createCell(2); celda10.setCellStyle(bordes); Cell celda11 = row4.createCell(3); celda11.setCellStyle(bordes); Cell celda12 = row4.createCell(4); celda12.setCellStyle(borderBot); Cell celda13 = row4.createCell(5); celda13.setCellStyle(borderBot); Cell celda14 = row4.createCell(6); celda14.setCellStyle(borderBot); Cell celda15 = row4.createCell(7); celda15.setCellStyle(borderBot); Cell celda16 = row4.createCell(8); celda16.setCellStyle(borderBot); pRow++; Row row6 = hoja.createRow(pRow); Cell celda64 = row6.createCell(4); combinarceldas(hoja, pRow, pRow, 4, 8); celda64.setCellValue(maestro); pRow = pRow + 2; //encabexzados Row row2 = hoja.createRow(pRow); Cell cell = row2.createCell(1); cell.setCellValue("Nficha"); cell.setCellStyle(estilo2); Cell cell1 = row2.createCell(2); cell1.setCellValue("1er Apellido"); cell1.setCellStyle(estilo2); Cell cell2 = row2.createCell(3); cell2.setCellValue("2do Apellido"); cell2.setCellStyle(estilo2); Cell cell3 = row2.createCell(4); cell3.setCellValue("1er Nombre"); cell3.setCellStyle(estilo2); Cell cell4 = row2.createCell(5); cell4.setCellValue("2do Nombre"); cell4.setCellStyle(estilo2); Cell cell5 = row2.createCell(6); cell5.setCellValue("Identificacion"); cell5.setCellStyle(estilo2); Cell cell6 = row2.createCell(7); cell6.setCellValue("Da"); cell6.setCellStyle(estilo2); Cell cell7 = row2.createCell(8); cell7.setCellValue("Cargo"); cell7.setCellStyle(estilo2); Cell cell8 = row2.createCell(9); cell8.setCellValue("Grupo"); cell8.setCellStyle(estilo2); } Row row5 = hoja.createRow(pRow + 1); Cell celda51 = row5.createCell(1); celda51.setCellStyle(bordes); celda51.setCellValue(emp.getnFicha()); Cell celda52 = row5.createCell(2); celda52.setCellStyle(bordes); celda52.setCellValue(emp.getpApellido()); Cell celda53 = row5.createCell(3); celda53.setCellStyle(bordes); celda53.setCellValue(emp.getsApellido()); Cell celda54 = row5.createCell(4); celda54.setCellStyle(bordes); celda54.setCellValue(emp.getpNombre()); Cell celda55 = row5.createCell(5); celda55.setCellStyle(bordes); celda55.setCellValue(emp.getsNombre()); Cell celda56 = row5.createCell(6); celda56.setCellStyle(bordes); celda56.setCellValue(emp.getCedula()); Cell celda57 = row5.createCell(7); celda57.setCellStyle(bordes); celda57.setCellValue(fechaActual); Cell celda58 = row5.createCell(8); celda58.setCellStyle(bordes); celda58.setCellValue(emp.getCargo()); Cell celda59 = row5.createCell(9); celda59.setCellStyle(bordes); celda59.setCellValue(grupo.getNombre()); pRow++; Empleado supervisor = app.empleado(grupo.getSupervisor()); if (supervisor != null) { maestro = supervisor.getpNombre() + " " + supervisor.getsNombre() + " " + supervisor.getpApellido() + " " + supervisor.getsApellido(); } else { maestro = String.valueOf(grupo.getSupervisor()); } // //String cedula = (String) e; //Empleado emp = app.empleado(cedula); System.out.println(emp.getCedula()); } if (emp != null) { pRow = pRow + 2; //frima maestro Row row4 = hoja.createRow(pRow); Cell celda9 = row4.createCell(1); combinarceldas(hoja, pRow, pRow, 1, 3); celda9.setCellValue("Maestro Grupo:"); celda9.setCellStyle(estilo); Cell celda10 = row4.createCell(2); celda10.setCellStyle(bordes); Cell celda11 = row4.createCell(3); celda11.setCellStyle(bordes); Cell celda12 = row4.createCell(4); celda12.setCellStyle(borderBot); Cell celda13 = row4.createCell(5); celda13.setCellStyle(borderBot); Cell celda14 = row4.createCell(6); celda14.setCellStyle(borderBot); Cell celda15 = row4.createCell(7); celda15.setCellStyle(borderBot); Cell celda16 = row4.createCell(8); celda16.setCellStyle(borderBot); pRow++; Row row6 = hoja.createRow(pRow); Cell celda64 = row6.createCell(4); combinarceldas(hoja, pRow, pRow, 4, 8); celda64.setCellValue(maestro); } //enmcabezados //Row row3 = hoja.createRow(1); // debe ejcutarse un loop de acuerdoa consaulta //datos //datos responsable firma //CellS //celda64.setCellStyle(); try (FileOutputStream fileOut = new FileOutputStream(nombreFile)) { //escribir este libro en un OutputStream. libro.write(fileOut); fileOut.flush(); } } private void combinarceldas(Sheet hoja, int pFila, int uFila, int nColumna, int nColumnaFinal) { hoja.addMergedRegion(new CellRangeAddress(pFila, uFila, nColumna, nColumnaFinal)); } }