Example usage for org.apache.poi.xssf.usermodel XSSFWorkbook write

List of usage examples for org.apache.poi.xssf.usermodel XSSFWorkbook write

Introduction

In this page you can find the example usage for org.apache.poi.xssf.usermodel XSSFWorkbook write.

Prototype

@SuppressWarnings("resource")
public final void write(OutputStream stream) throws IOException 

Source Link

Document

Write out this document to an Outputstream.

Usage

From source file:de.tuttas.servlets.DokuServlet.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from  w w  w.j  a v a2  s  .c o m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String auth = request.getParameter("auth_token");
    String service = request.getParameter("service_key");
    Log.d("auth_token=" + auth);
    if (request.getParameter("cmd") == null || request.getParameter("idklasse") == null
            || request.getParameter("from") == null) {
        Log.d("Info zeigen");
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Doku Servlet Usage</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Doku Servlet @ " + request.getContextPath() + "</h1>");
            out.println(
                    "<a href='?cmd=Verlauf&idklasse=3608&from=2015-09-08&debug=" + Config.getInstance().debug
                            + "' target='_pdf'>Usage: ?cmd=verlauf&idklasse=3608&from=2015-09-08</a>");
            out.println("</body>");
            out.println("</html>");
        }
    } else {
        if (Config.getInstance().debug
                || service != null && auth != null && Authenticator.getInstance().isAuthTokenValid(auth)) {
            Log.d("ID Klasse = " + request.getParameter("idklasse"));
            Klasse kl = em.find(Klasse.class, Integer.parseInt(request.getParameter("idklasse")));
            String cmd = request.getParameter("cmd");
            String type = request.getParameter("type");
            String sidSchuljahr = request.getParameter("idSchuljahr");
            int idSchuljahr = -1;
            if (sidSchuljahr != null) {
                try {
                    idSchuljahr = Integer.parseInt(sidSchuljahr);
                } catch (NumberFormatException nux) {

                }
            }
            String filter1 = request.getParameter("dokufilter1");
            String filter2 = request.getParameter("dokufilter2");
            int anwFilter1 = 0;
            int anwFilter2 = 0;
            if (request.getParameter("anwfilter1") != null) {
                anwFilter1 = Integer.parseInt(request.getParameter("anwfilter1"));
            }
            if (request.getParameter("anwfilter2") != null) {
                anwFilter2 = Integer.parseInt(request.getParameter("anwfilter2"));
            }
            Authenticator a = Authenticator.getInstance();
            String me = a.getUser(auth);
            Log.d("Verlauf Filter1=" + filter1 + " Verlauf Filter2=" + filter2 + " me=" + me);
            Log.d("Anwesenheitsfilter 1 = " + anwFilter1 + " Filter2=" + anwFilter2);
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            Date parsedFrom = null;
            try {
                parsedFrom = (Date) dateFormat.parse(request.getParameter("from"));
            } catch (ParseException ex) {
                Logger.getLogger(DokuServlet.class.getName()).log(Level.SEVERE, null, ex);
            }
            Date parsedTo = null;
            if (request.getParameter("to") == null) {
                parsedTo = new java.sql.Date(System.currentTimeMillis());
            } else {
                try {
                    parsedTo = (Date) dateFormat.parse(request.getParameter("to"));
                } catch (ParseException ex) {
                    Logger.getLogger(DokuServlet.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            Log.d("setze To auf " + new java.sql.Date(parsedTo.getTime()));
            Log.d("type=" + type + " cmd=" + cmd + " Klasse=" + kl.getKNAME());
            if (type.compareTo("csv") == 0) {

                MyTableDataModel myModel = null;
                if (cmd.compareTo("Betriebe") == 0) {
                    response.setContentType(
                            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8");
                    response.setCharacterEncoding("UTF-8");
                    String fileName = cmd + "_" + kl.getKNAME() + "_"
                            + new java.sql.Date(parsedTo.getTime()).toString() + ".xlsx";
                    fileName = URLEncoder.encode(fileName, "UTF-8");
                    String contentDisposition = "attachment; filename=\"" + fileName + "\"; filename*=UTF-8''"
                            + fileName;
                    response.addHeader("Content-Disposition", contentDisposition);

                    myModel = getModelBetriebsliste(kl);
                    XSSFWorkbook wb = ExcelUtil.readExcel(
                            Config.getInstance().TEMPLATE_FILE_PATH + cmd + ".xlsx",
                            new String[] { "Betriebe" }, myModel.getRows(), myModel.getCols());
                    wb = myModel.toExcel(wb, 0);
                    wb.write(response.getOutputStream());
                } else if (cmd.compareTo("Notenliste") == 0) {
                    response.setContentType(
                            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8");
                    response.setCharacterEncoding("UTF-8");
                    String fileName = cmd + "_" + kl.getKNAME() + "_"
                            + new java.sql.Date(parsedTo.getTime()).toString() + ".xlsx";
                    fileName = URLEncoder.encode(fileName, "UTF-8");
                    String contentDisposition = "attachment; filename=\"" + fileName + "\"; filename*=UTF-8''"
                            + fileName;
                    response.addHeader("Content-Disposition", contentDisposition);

                    myModel = getModelNotenliste(kl, idSchuljahr);
                    XSSFWorkbook wb = ExcelUtil.readExcel(
                            Config.getInstance().TEMPLATE_FILE_PATH + cmd + ".xlsx",
                            new String[] { "Notenliste" }, myModel.getRows(), myModel.getCols());
                    wb = myModel.toExcel(wb, 0);
                    wb.write(response.getOutputStream());

                } else if (cmd.compareTo("Fehlzeiten") == 0) {
                    response.setContentType(
                            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8");
                    response.setCharacterEncoding("UTF-8");
                    String fileName = cmd + "_" + kl.getKNAME() + "_"
                            + new java.sql.Date(parsedFrom.getTime()).toString() + "-"
                            + new java.sql.Date(parsedTo.getTime()).toString() + ".xlsx";
                    fileName = URLEncoder.encode(fileName, "UTF-8");
                    String contentDisposition = "attachment; filename=\"" + fileName + "\"; filename*=UTF-8''"
                            + fileName;
                    response.addHeader("Content-Disposition", contentDisposition);

                    myModel = getModelFehlzeiten(kl, parsedFrom, parsedTo);
                    XSSFWorkbook wb = ExcelUtil.readExcel(
                            Config.getInstance().TEMPLATE_FILE_PATH + cmd + ".xlsx",
                            new String[] { "Fehlzeiten" }, myModel.getRows(), myModel.getCols());
                    wb = myModel.toExcel(wb, 0);
                    wb.write(response.getOutputStream());
                } else if (cmd.compareTo("Anwesenheit") == 0) {
                    response.setContentType(
                            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8");
                    response.setCharacterEncoding("UTF-8");
                    String fileName = cmd + "_" + kl.getKNAME() + "_"
                            + new java.sql.Date(parsedFrom.getTime()).toString() + "-"
                            + new java.sql.Date(parsedTo.getTime()).toString() + ".xlsx";
                    fileName = URLEncoder.encode(fileName, "UTF-8");
                    String contentDisposition = "attachment; filename=\"" + fileName + "\"; filename*=UTF-8''"
                            + fileName;
                    response.addHeader("Content-Disposition", contentDisposition);

                    myModel = getModelAnwesenheit(kl, parsedFrom, parsedTo, anwFilter1, anwFilter2);
                    XSSFWorkbook wb = ExcelUtil.readExcel(
                            Config.getInstance().TEMPLATE_FILE_PATH + cmd + ".xlsx",
                            new String[] { "Anwesenheit" }, myModel.getRows(), myModel.getCols());
                    wb = myModel.toExcel(wb, 0);
                    wb.write(response.getOutputStream());

                } else if (cmd.compareTo("Verlauf") == 0) {

                    response.setContentType(
                            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8");
                    response.setCharacterEncoding("UTF-8");
                    String fileName = cmd + "_" + kl.getKNAME() + "_"
                            + new java.sql.Date(parsedFrom.getTime()).toString() + "-"
                            + new java.sql.Date(parsedTo.getTime()).toString() + ".xlsx";
                    fileName = URLEncoder.encode(fileName, "UTF-8");
                    String contentDisposition = "attachment; filename=\"" + fileName + "\"; filename*=UTF-8''"
                            + fileName;
                    response.addHeader("Content-Disposition", contentDisposition);

                    myModel = getModelVerlauf(kl, parsedFrom, parsedTo, filter1, filter2, me);
                    XSSFWorkbook wb = ExcelUtil.readExcel(
                            Config.getInstance().TEMPLATE_FILE_PATH + cmd + ".xlsx",
                            new String[] { "Unterrichtsverlauf" }, myModel.getRows(), myModel.getCols());
                    wb = myModel.toExcel(wb, 0);
                    wb.write(response.getOutputStream());
                } else if (cmd.compareTo("UmfrageAuswertung") == 0) {
                    Umfrage u = em.find(Umfrage.class, anwFilter1);
                    Umfrage u2 = em.find(Umfrage.class, anwFilter2);
                    response.setContentType(
                            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8");
                    response.setCharacterEncoding("UTF-8");
                    String fileName = "Auswertung_" + u.getNAME() + "_vom_"
                            + new java.sql.Date(parsedTo.getTime()).toString() + ".xlsx";
                    fileName = URLEncoder.encode(fileName, "UTF-8");
                    String contentDisposition = "attachment; filename=\"" + fileName + "\"; filename*=UTF-8''"
                            + fileName;
                    response.addHeader("Content-Disposition", contentDisposition);
                    List<UmfrageResult> res1 = UmfrageUtil.getUmfrageResult(em, auth, anwFilter1, filter1);
                    List<UmfrageResult> res2 = UmfrageUtil.getUmfrageResult(em, auth, anwFilter2, filter2);
                    res2 = UmfrageUtil.getComparableResultList(res1, res2);
                    myModel = getModelUmfrageAuswertung(res1);
                    XSSFWorkbook wb = ExcelUtil.readExcel(
                            Config.getInstance().TEMPLATE_FILE_PATH + u.getNAME() + ".xlsx",
                            new String[] { "Hauptgruppe", "Vergleichsgruppe", "Info" }, myModel.getRows(),
                            myModel.getCols());
                    wb = myModel.toExcel(wb, 0);
                    myModel = getModelUmfrageAuswertung(res2);
                    wb = myModel.toExcel(wb, 1);
                    XSSFSheet s = wb.getSheetAt(2);
                    XSSFRow r = s.getRow(0);
                    r.getCell(0).setCellValue(u.getNAME());
                    r.getCell(1).setCellValue(filter1);
                    r = s.getRow(1);
                    r.getCell(0).setCellValue(u2.getNAME());
                    r.getCell(1).setCellValue(filter2);
                    wb.write(response.getOutputStream());
                } else {
                    PrintWriter out = response.getWriter();
                    response.setContentType("application/json; charset=UTF-8");
                    String r = "{\"error\":true,\"msg\":\"Kann fr " + cmd + " kein Datenmodell erzeugen!\"}";
                    out.print(r);
                }
            } else {
                response.setContentType("application/pdf");
                //Get the output stream for writing PDF object        
                OutputStream out = response.getOutputStream();
                try {
                    String kopf = "";
                    kopf += ("<table border='1' align='center' width='100%'>");
                    kopf += ("<tr>");
                    kopf += ("<td rowspan=\"3\" width='150px'></td>");
                    kopf += ("<td align='center'><h2>Multi Media Berufsbildende Schulen Hannover</h2></td>");
                    if (cmd.compareTo("Verlauf") == 0) {
                        kopf += ("<td colspan=\"2\" align='center'><b>Digitales Klassenbuch Unterrichtsverlauf</b></td>");
                    } else if (cmd.compareTo("Anwesenheit") == 0) {
                        kopf += ("<td colspan=\"2\" align='center'><b>Digitales Klassenbuch Anwesenheit</b></td>");
                    } else if (cmd.compareTo("Fehlzeiten") == 0) {
                        kopf += ("<td colspan=\"2\" align='center'><b>Digitales Klassenbuch Fehlzeiten</b></td>");
                    } else if (cmd.compareTo("Stundenplan") == 0) {
                        kopf += ("<td colspan=\"2\" align='center'><b>Digitales Klassenbuch Stundenplan</b></td>");
                    } else if (cmd.compareTo("Vertretungsplan") == 0) {
                        kopf += ("<td colspan=\"2\" align='center'><b>Digitales Klassenbuch Vertretungsplan</b></td>");
                    } else if (cmd.compareTo("Notenliste") == 0) {
                        kopf += ("<td colspan=\"2\" align='center'><b>Digitales Klassenbuch Notenliste</b></td>");
                    } else if (cmd.compareTo("Betriebe") == 0) {
                        kopf += ("<td colspan=\"2\" align='center'><b>Digitales Klassenbuch Betriebsliste</b></td>");
                    } else if (cmd.compareTo("UmfrageAuswertung") == 0) {
                        kopf += ("<td colspan=\"2\" align='center'><b>Digitales Klassenbuch Auswertung Umfrage</b></td>");
                    }
                    kopf += ("</tr>");
                    kopf += ("<tr>");
                    if (cmd.compareTo("UmfrageAuswertung") == 0) {
                        Umfrage u1 = em.find(Umfrage.class, anwFilter1);
                        Umfrage u2 = em.find(Umfrage.class, anwFilter2);
                        kopf += ("<td  align='center' rowspan=\"2\" style=\"padding:5px;font-size: 11\">Hauptgruppe: ("
                                + u1.getNAME() + "/" + filter1 + ")<br></br> Vergleichsgruppe: (" + u2.getNAME()
                                + "/" + filter2 + ")</td>");
                    } else {
                        kopf += ("<td  align='center' rowspan=\"2\"><h3>Klasse/ Kurs: " + kl.getKNAME()
                                + "</h3></td>");
                    }
                    kopf += ("<td  style=\"font-size: 11;\">Verantwortlicher: " + kl.getID_LEHRER() + "</td>");
                    kopf += ("<td  style=\"font-size: 11;\">geprft</td>");
                    kopf += ("</tr>");
                    kopf += ("<tr>");
                    DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
                    Calendar c = df.getCalendar();
                    c.setTimeInMillis(System.currentTimeMillis());
                    String dat = c.get(Calendar.DAY_OF_MONTH) + "." + (c.get(Calendar.MONTH) + 1) + "."
                            + c.get(Calendar.YEAR);
                    kopf += ("<td  style=\"font-size: 11;\">Ausdruck am: " + dat + "</td>");
                    kopf += ("<td  style=\"font-size: 11;\">Datum</td>");
                    kopf += ("</tr>");
                    kopf += ("</table>");
                    kopf += ("<p>&nbsp;</p>");

                    Document document;
                    if (cmd.compareTo("Verlauf") == 0) {
                        response.addHeader("Content-Disposition",
                                "attachment; filename=Verlauf_" + kl.getKNAME() + "_"
                                        + new java.sql.Date(parsedFrom.getTime()).toString() + "-"
                                        + new java.sql.Date(parsedTo.getTime()).toString() + ".pdf");
                        document = createVerlauf(kl, kopf, parsedFrom, parsedTo, out, filter1, filter2, me);
                    } else if (cmd.compareTo("Portfolio") == 0) {
                        response.addHeader("Content-Disposition",
                                "attachment; filename=Portfolio_" + kl.getKNAME() + ".pdf");
                        document = createPortfolio(kl, out);
                    } else if (cmd.compareTo("Anwesenheit") == 0) {
                        response.addHeader("Content-Disposition",
                                "attachment; filename=Anwesenheit_" + kl.getKNAME() + "_"
                                        + new java.sql.Date(parsedFrom.getTime()).toString() + "-"
                                        + new java.sql.Date(parsedTo.getTime()).toString() + ".pdf");
                        document = createAnwesenheit(kl, kopf, parsedFrom, parsedTo, out, anwFilter1,
                                anwFilter2);
                    } else if (cmd.compareTo("Fehlzeiten") == 0) {
                        response.addHeader("Content-Disposition",
                                "attachment; filename=Fehlzeiten_" + kl.getKNAME() + "_"
                                        + new java.sql.Date(parsedFrom.getTime()).toString() + "-"
                                        + new java.sql.Date(parsedTo.getTime()).toString() + ".pdf");
                        MyTableDataModel myModel = getModelFehlzeiten(kl, parsedFrom, parsedTo);
                        document = createFehlzeiten(kl, kopf, parsedFrom, parsedTo, out);
                    } else if (cmd.compareTo("Vertretungsliste") == 0) {
                        response.addHeader("Content-Disposition",
                                "attachment; filename=Vertretungsliste_"
                                        + new java.sql.Date(parsedFrom.getTime()).toString() + "-"
                                        + new java.sql.Date(parsedTo.getTime()).toString() + ".pdf");
                        document = createVertretungsliste(parsedFrom, parsedTo, out);
                    } else if (cmd.compareTo("Notenliste") == 0) {
                        response.addHeader("Content-Disposition",
                                "attachment; filename=Notenliste_" + kl.getKNAME() + "_"
                                        + new java.sql.Date(parsedTo.getTime()).toString() + ".pdf");
                        MyTableDataModel myModel = getModelNotenliste(kl, idSchuljahr);
                        Schuljahr schuljahr = em.find(Schuljahr.class, idSchuljahr);
                        document = createNotenliste(myModel, kopf, out, schuljahr.getNAME());
                    } else if (cmd.compareTo("Betriebe") == 0) {
                        response.addHeader("Content-Disposition",
                                "attachment; filename=Betriebsliste_" + kl.getKNAME() + "_"
                                        + new java.sql.Date(parsedTo.getTime()).toString() + ".pdf");
                        MyTableDataModel myModel = getModelBetriebsliste(kl);
                        document = createBetriebsListe(myModel, kopf, out);
                    } else if (cmd.compareTo("UmfrageAuswertung") == 0) {
                        response.addHeader("Content-Disposition", "attachment; filename=UmfrageAuswertung_"
                                + new java.sql.Date(parsedTo.getTime()).toString() + ".pdf");
                        List<UmfrageResult> res1 = UmfrageUtil.getUmfrageResult(em, auth, anwFilter1, filter1);
                        List<UmfrageResult> res2 = UmfrageUtil.getUmfrageResult(em, auth, anwFilter2, filter2);
                        res2 = UmfrageUtil.getComparableResultList(res1, res2);
                        if (res1 != null && res2 != null) {
                            Log.d("erzeuge pdf Dokument");
                            document = createUmfrageauswertung(res1, res2, anwFilter1, anwFilter2, filter1,
                                    filter2, kopf, out);
                        }
                    }

                } catch (DocumentException exc) {
                    Log.d("Document Exception " + exc.getMessage());
                    exc.printStackTrace();
                    throw new IOException(exc.getMessage());
                } catch (ParseException ex) {
                    Log.d("Parse Exception " + ex.getMessage());
                    Logger.getLogger(DokuServlet.class.getName()).log(Level.SEVERE, null, ex);
                } finally {
                    out.close();
                }

            }

        } else {
            response.setContentType("text/html;charset=UTF-8");
            try (PrintWriter out = response.getWriter()) {
                out.println("<!DOCTYPE html>");
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Doku Servlet Usage</title>");
                out.println("</head>");
                out.println("<body>");
                out.println("<h1>You are not authorized</h1>");
                out.println("</body>");
                out.println("</html>");
            }
        }
    }
}

From source file:de.tuttas.util.ExcelUtil.java

private static void writeExcel(XSSFWorkbook wb, String name) throws FileNotFoundException, IOException {
    FileOutputStream out = new FileOutputStream(new File(name));
    wb.write(out);
    out.close();//  w ww.j a va 2  s.  com
}

From source file:dias.Save.java

public void save(Matrix matrice, String filename) throws FileNotFoundException, IOException { ///It is working
    String dirPath = DIAS.excelFilePath + File.separator + filepath;
    setupDirectory(dirPath);/*from w ww.  ja v  a2 s  . c o m*/
    String fileName = dirPath + File.separator + filename + ".xlsx";
    System.out.println("Using filepath " + filepath + ", saving to address: " + fileName);
    try {
        FileOutputStream fileOut = new FileOutputStream(fileName);
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet worksheet = workbook.createSheet("POI Worksheet");

        int lastvaluex = matrice.getRowDimension();
        int lastvaluey = matrice.getColumnDimension();
        int ih = 0;
        int jh = 0;

        while (ih < lastvaluex) {

            XSSFRow row = worksheet.createRow(ih);
            ih++;
            while (jh < lastvaluey) {
                XSSFCell cell = row.createCell(jh);
                jh++;
                cell.setCellValue(matrice.get(ih - 1, jh - 1));
            }
            jh = 0;
        }
        workbook.write(fileOut);
        fileOut.flush();
        fileOut.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:dias.Save.java

public void savedouble(double matrice, String filename) throws FileNotFoundException, IOException { ///It is working
    String dirPath = DIAS.excelFilePath + File.separator + filepath;
    setupDirectory(dirPath);//from  w ww  .jav a 2  s.  c o  m
    String fileName = dirPath + File.separator + filename + ".xlsx";
    try {
        FileOutputStream fileOut = new FileOutputStream(fileName);
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet worksheet = workbook.createSheet("POI Worksheet");

        int lastvaluex = 1;
        int lastvaluey = 1;
        int ih = 0;
        int jh = 0;

        while (ih < lastvaluex) {

            XSSFRow row = worksheet.createRow(ih);
            ih++;
            while (jh < lastvaluey) {
                XSSFCell cell = row.createCell(jh);
                jh++;
                cell.setCellValue(matrice);
            }
            jh = 0;
        }
        workbook.write(fileOut);
        fileOut.flush();
        fileOut.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:dias.Save.java

public void save3D(Matrix matrice, String filename, int kj) throws FileNotFoundException, IOException { ///It is working
    String dirPath = DIAS.excelFilePath + File.separator + filepath;
    setupDirectory(dirPath);// w w w .j a va 2s  . c om
    String fileName = dirPath + File.separator + filename + kj + ".xlsx";
    try {
        FileOutputStream fileOut = new FileOutputStream(fileName);
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet worksheet = workbook.createSheet("POI Worksheet");

        int lastvaluex = matrice.getRowDimension();
        int lastvaluey = matrice.getColumnDimension();
        int ih = 0;
        int jh = 0;

        while (ih < lastvaluex) {
            XSSFRow row = worksheet.createRow(ih);
            while (jh < lastvaluey) {
                XSSFCell cell = row.createCell(jh);
                cell.setCellValue(matrice.get(ih, jh));
                jh++;
            }
            ih++;
            jh = 0;
        }
        workbook.write(fileOut);
        fileOut.flush();
        fileOut.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:dias.Save.java

public void saveString(String[] matrice, String filename) throws FileNotFoundException, IOException { ///It is working
    String dirPath = DIAS.excelFilePath + File.separator + filepath;
    setupDirectory(dirPath);//from   ww  w .ja  v a  2s .c  o  m
    String fileName = dirPath + File.separator + filename + ".xlsx";
    try {
        FileOutputStream fileOut = new FileOutputStream(fileName);
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet worksheet = workbook.createSheet("POI Worksheet");

        int lastvaluex = matrice.length;
        int lastvaluey = 1;
        int ih = 0;
        int jh = 0;

        while (ih < lastvaluex) {
            XSSFRow row = worksheet.createRow(ih);

            while (jh < lastvaluey) {
                XSSFCell cell = row.createCell(jh);
                cell.setCellValue(matrice[ih]);
                jh++;
            }
            ih++;
            jh = 0;
        }
        workbook.write(fileOut);
        fileOut.flush();
        fileOut.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:DSC.AccountantReport.java

private static void createExcelReport() {
    XSSFWorkbook workbook = new XSSFWorkbook();
    clients.sort(new Comparator<Client>() {
        @Override/*from  ww w  .j  a v  a 2  s  . co  m*/
        public int compare(Client o1, Client o2) {
            return (o1.getSurname() + " " + o1.getName()).compareTo(o2.getSurname() + " " + o2.getName());
        }
    });

    int lastIndex = 0;
    for (int letter = 0; letter < 26; letter++) {
        XSSFSheet sheet = workbook.createSheet("AccountReport " + (char) (65 + letter));
        Map<String, Object[]> data = new TreeMap<>();
        data.put("1", new Object[] { "Doorstep Chef Accountant Sheet", "", "", "", "", "", "",
                "Week: " + DriverReport.returnWeekInt(), "", "" });
        data.put("2", new Object[] { "", "", "", "", "", "", "", "", "", "" });
        data.put("3", new Object[] { "Customer", "Contact", "Fam", "4Day", "Mthly", "EFT", "Cash", "Date Paid",
                "Stay", "Comments" });

        int reduction = 0;
        for (int i = 0; i < clients.size(); i++) {
            Client client = clients.get(i);
            if (client.getSurname().toUpperCase().charAt(0) == (char) (65 + letter)) {
                data.put((i + 4 - reduction) + "",
                        new Object[] { client.getName() + " " + client.getSurname(),
                                client.getContactNumber().substring(0, 3) + " "
                                        + client.getContactNumber().substring(3, 6) + " "
                                        + client.getContactNumber().substring(6, 10),
                                client.getAdditionalInfo(), "", "", "", "", "", "", "" });
            } else {
                reduction++;
            }
        }

        Set<String> keySet = data.keySet();
        int totalSize = 34900;
        int longestCustomer = 0;

        for (int key = 1; key < keySet.size() + 1; key++) {
            Row row = sheet.createRow(key - 1);
            Object[] arr = data.get(key + "");
            for (int i = 0; i < arr.length; i++) {
                Cell cell = row.createCell(i);
                cell.setCellValue((String) arr[i]);

                if (i == 0 && !(key + "").equals("1") && longestCustomer < ((String) arr[i]).length()) {
                    longestCustomer = ((String) arr[i]).length();
                }
                XSSFCellStyle borderStyle = workbook.createCellStyle();

                if (!((key + "").equals("1") || (key + "").equals("2"))) {
                    borderStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex());
                    borderStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex());
                    borderStyle.setTopBorderColor(IndexedColors.BLACK.getIndex());
                    borderStyle.setRightBorderColor(IndexedColors.BLACK.getIndex());
                    if ((key + "").equals("3")) {
                        borderStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
                        borderStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);
                        borderStyle.setBorderTop(XSSFCellStyle.BORDER_MEDIUM);
                        borderStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
                        borderStyle.setAlignment(HorizontalAlignment.CENTER);
                        borderStyle.setFillPattern(XSSFCellStyle.LESS_DOTS);
                        borderStyle.setFillBackgroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
                        XSSFFont font = workbook.createFont();
                        font.setColor(IndexedColors.WHITE.getIndex());
                        font.setBold(true);
                        borderStyle.setFont(font);
                    } else {
                        if (i != 0) {
                            borderStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
                        } else {
                            borderStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);
                        }
                        if (i != 9) {
                            borderStyle.setBorderRight(XSSFCellStyle.BORDER_THIN);
                        } else {
                            borderStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
                        }

                        if ((Integer.parseInt((key + ""))) != keySet.size()) {
                            borderStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
                        } else {
                            borderStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
                        }
                        borderStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);

                    }
                } else {
                    if (i == 7) {
                        borderStyle.setAlignment(HorizontalAlignment.RIGHT);
                    }
                    XSSFFont font = workbook.createFont();
                    font.setFontName("Calibri");
                    font.setFontHeightInPoints((short) 13);
                    font.setBold(true);
                    borderStyle.setFont(font);
                }

                cell.setCellStyle(borderStyle);

            }
            if (key == 1) {
                sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 6));
                sheet.addMergedRegion(new CellRangeAddress(0, 0, 7, 9));
            }

        }
        sheet.setColumnWidth(0, (longestCustomer + 1) * 240);
        sheet.setColumnWidth(1, 11 * 240);
        sheet.setColumnWidth(2, 5 * 240);
        sheet.setColumnWidth(3, 5 * 240);
        sheet.setColumnWidth(4, 5 * 240);
        sheet.setColumnWidth(5, 5 * 240);
        sheet.setColumnWidth(6, 5 * 240);
        sheet.setColumnWidth(7, 10 * 240);
        sheet.setColumnWidth(8, 5 * 240);
        for (int i = 0; i < 9; i++) {
            totalSize -= sheet.getColumnWidth(i);
        }
        sheet.setColumnWidth(9, totalSize);

        Row rowDate = sheet.createRow(keySet.size() + 1);
        Cell cell = rowDate.createCell(0);
        SimpleDateFormat sf = new SimpleDateFormat("EEE MMM yyyy HH:mm:ss");

        cell.setCellValue(sf.format(Calendar.getInstance().getTime()));
        XSSFCellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setAlignment(XSSFCellStyle.ALIGN_RIGHT);
        cell.setCellStyle(cellStyle);
        sheet.addMergedRegion(new CellRangeAddress(keySet.size() + 1, keySet.size() + 1, 0, 9));

    }

    try {
        workbook.write(excelOut);
        excelOut.close();
        System.out.println("Done - Accountant");
        if (!(DSC_Main.generateAllReports)) {
            accountLoadObj.setVisible(false);
            accountLoadObj.dispose();
            JOptionPane.showMessageDialog(null, "AccountReports Succesfully Generated", "Success",
                    JOptionPane.INFORMATION_MESSAGE);
        } else {
            DSC_Main.reportsDone++;
            if (DSC_Main.reportsDone == DSC_Main.TOTAL_REPORTS) {
                DSC_Main.reportsDone();
            }
        }

    } catch (IOException io) {
        accountLoadObj.setVisible(false);
        accountLoadObj.dispose();
        JOptionPane.showMessageDialog(null, "An error occured\nCould not create AccountReport", "Error",
                JOptionPane.ERROR_MESSAGE);
        System.err.println("Error - Could not create new AccountReport: ");
        io.printStackTrace();
    }
}

From source file:DSC.ChefReport.java

public static void creatSheet(String mealType, XSSFWorkbook workbook) throws IOException {
    FileOutputStream excelOut = null;
    try {//w  w  w.ja  v a 2  s  .  c  om

        Path path = Paths.get("Reports\\Week " + DriverReport.returnWeekInt() + " ("
                + DriverReport.returnWeekString() + ")\\ChefReports\\");
        Files.createDirectories(path);

        File file = path.resolve(
                "ChefReports Week - " + DriverReport.returnWeekInt() + " ( " + mealType + " )" + ".xlsx")
                .toFile();
        if (!file.exists()) {
            file.createNewFile();
        }

        excelOut = new FileOutputStream(file);
        workbook.write(excelOut);
        excelOut.close();
        booksCounter++;

        if (booksCounter == 3) {
            System.out.println("Done - Chef");
            if (DSC_Main.generateAllReports) {
                DSC_Main.reportsDone++;
                if (DSC_Main.reportsDone == DSC_Main.TOTAL_REPORTS) {
                    DSC_Main.reportsDone();
                }
            }
        }
    } catch (FileNotFoundException ex) {
        JOptionPane.showMessageDialog(null, "File is Currently being Used. Please Close the File.");
        JOptionPane.showMessageDialog(null, "Directory Cannot be Found!");
    }
}

From source file:DSC.DriverReport.java

private static void createSpreadsheets() {
    XSSFWorkbook workbook = new XSSFWorkbook();
    for (Route route : routeList) {

        XSSFSheet sheet = workbook.createSheet("DriverReports Route - " + route.getID());

        Map<String, Object[]> data = new TreeMap<>();
        data.put("1",
                new Object[] {
                        "Doorstep Chef Driver Sheet  Week: " + returnWeekInt() + " - " + returnWeekString(), "",
                        "", "", "", "", "", "", "",
                        "Driver: " + route.getDrivers().get(0).getDriver().getDriverName().split(" ")[0] + " - "
                                + route.getDrivers().get(0).getDriver().getContactNumber(),
                        "Route: " + route.getID() });
        data.put("2", new Object[] { "", "", "", "", "", "", "", "", "" });
        data.put("3", new Object[] { "Customer", "Contact", "Cash", "DatePaid", "Mon", "Tue", "Wed", "Thu",
                "Fri", "Address", "AdditionalInfo" });

        int counter = 4;
        for (Order order : orderList) {
            if (order.getRoute().equals(route.getID())) {
                Client client = order.getClient();
                String durationMarker = "";
                if (order.getDuration().equals("Monday - Thursday")) {
                    durationMarker = "X";
                }// w w w.j  a v a  2  s  .com

                data.put("" + counter,
                        new Object[] { client.getName() + " " + client.getSurname(),
                                client.getContactNumber().substring(0, 3) + " "
                                        + client.getContactNumber().substring(3, 6) + " "
                                        + client.getContactNumber().substring(6, 10),
                                "", "", "", "", "", "", durationMarker,
                                client.getAddress().replaceAll("\n", ", "), client.getAdditionalInfo() });
                counter++;
            }
        }

        Set<String> keySet = data.keySet();
        int longestCustomer = 0;
        int totalWidth = 34900;
        for (int key = 1; key < keySet.size() + 1; key++) {

            Row row = sheet.createRow(key - 1);
            Object[] arr = data.get(key + "");

            for (int i = 0; i < arr.length; i++) {
                Cell cell = row.createCell(i);
                cell.setCellValue((String) arr[i]);
                if (i == 0 && !(key + "").equals("1") && longestCustomer < ((String) arr[i]).length()) {
                    longestCustomer = ((String) arr[i]).length();
                }
                XSSFCellStyle borderStyle = workbook.createCellStyle();

                if (!((key + "").equals("1") || (key + "").equals("2"))) {
                    borderStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex());
                    borderStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex());
                    borderStyle.setTopBorderColor(IndexedColors.BLACK.getIndex());
                    borderStyle.setRightBorderColor(IndexedColors.BLACK.getIndex());
                    if ((key + "").equals("3")) {
                        borderStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
                        borderStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);
                        borderStyle.setBorderTop(XSSFCellStyle.BORDER_MEDIUM);
                        borderStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
                        borderStyle.setAlignment(HorizontalAlignment.CENTER);
                        borderStyle.setFillPattern(XSSFCellStyle.LESS_DOTS);
                        borderStyle.setFillBackgroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
                        XSSFFont font = workbook.createFont();
                        font.setColor(IndexedColors.WHITE.getIndex());
                        font.setBold(true);
                        borderStyle.setFont(font);

                    } else {
                        if (i != 0) {
                            borderStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
                        } else {
                            borderStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);
                        }
                        if (i != 10) {
                            borderStyle.setBorderRight(XSSFCellStyle.BORDER_THIN);
                        } else {
                            borderStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
                        }

                        if (i == 8 && ((String) arr[i]).contains("X")) {
                            cell.setCellValue("");
                            borderStyle.setFillPattern(XSSFCellStyle.FINE_DOTS);
                            borderStyle.setFillBackgroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
                            borderStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
                        }

                        if ((Integer.parseInt((key + ""))) != keySet.size()) {
                            borderStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
                        } else {
                            borderStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
                        }
                        borderStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);

                    }
                    if ((i == 9 || i == 10) && !(key + "").equals("3")) {
                        borderStyle.setAlignment(XSSFCellStyle.ALIGN_JUSTIFY);
                        borderStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_JUSTIFY);
                    }
                } else {
                    if (i == 9) {
                        borderStyle.setAlignment(HorizontalAlignment.CENTER);
                    } else if (i == 10) {
                        borderStyle.setAlignment(HorizontalAlignment.RIGHT);
                    }
                    XSSFFont font = workbook.createFont();
                    font.setFontName("Calibri");
                    font.setFontHeightInPoints((short) 13);
                    font.setBold(true);
                    borderStyle.setFont(font);
                }

                cell.setCellStyle(borderStyle);
            }
        }

        sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 8));

        if ((longestCustomer) < 14) {
            longestCustomer = 14;
        }

        sheet.setColumnWidth(0, (longestCustomer + 1) * 240);
        sheet.setColumnWidth(1, 12 * 240);
        for (int i = 0; i < 6; i++) {
            sheet.setColumnWidth(i + 4, 1000);
        }
        sheet.setColumnWidth(2, 1000);
        sheet.setColumnWidth(3, 10 * 240);
        for (int i = 0; i < 9; i++) {
            totalWidth -= sheet.getColumnWidth(i);
        }
        sheet.setColumnWidth(9, (totalWidth / 3) * 2);
        sheet.setColumnWidth(10, totalWidth / 3);

        Row rowDate = sheet.createRow(keySet.size() + 1);
        Cell cell = rowDate.createCell(0);
        SimpleDateFormat sf = new SimpleDateFormat("EEE MMM yyyy HH:mm:ss");

        cell.setCellValue(sf.format(Calendar.getInstance().getTime()));
        XSSFCellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setAlignment(XSSFCellStyle.ALIGN_RIGHT);
        cell.setCellStyle(cellStyle);
        sheet.addMergedRegion(new CellRangeAddress(keySet.size() + 1, keySet.size() + 1, 0, 10));

    }

    try {
        excelOut = new FileOutputStream(file);
        workbook.write(excelOut);
        excelOut.close();
        if (!(DSC_Main.generateAllReports)) {
            driverLoadingObj.setVisible(false);
            driverLoadingObj.dispose();
            JOptionPane.showMessageDialog(null, "DriverReports Succesfully Generated", "Success",
                    JOptionPane.INFORMATION_MESSAGE);
        } else {
            DSC_Main.reportsDone++;
            if (DSC_Main.reportsDone == DSC_Main.TOTAL_REPORTS) {
                DSC_Main.reportsDone();
            }
        }

    } catch (FileNotFoundException ex) {
        JOptionPane.showMessageDialog(null, "Please close the excel file before using generating.", "Error",
                JOptionPane.ERROR_MESSAGE);
        System.err.println("Error - Could not create new DriverReport: File currently in use.");
        ex.printStackTrace();
    } catch (IOException io) {
        JOptionPane.showMessageDialog(null, "An error occured\nCould not create Driver Report", "Error",
                JOptionPane.ERROR_MESSAGE);
        System.err.println("Error - Could not create new Driver Report: ");
        io.printStackTrace();
    }
    System.out.println("Done - Driver");
}

From source file:DSC.NewClientReport.java

private static void createExcelReport() {

    XSSFWorkbook workbook = new XSSFWorkbook();
    clients.sort(new Comparator<Client>() {
        @Override/*from ww w .  ja v  a2s  . co  m*/
        public int compare(Client o1, Client o2) {
            return (o1.getSurname() + " " + o1.getName()).compareTo(o2.getSurname() + " " + o2.getName());
        }
    });

    XSSFSheet sheet = workbook.createSheet("NewClient Report");

    Map<String, Object[]> data = new TreeMap<>();
    data.put("1", new Object[] { "Doorstep Chef NewClient Sheet", "", "",
            "Week: " + DriverReport.returnWeekInt(), "" });
    data.put("2", new Object[] { "", "", "", "", "" });
    data.put("3", new Object[] { "Customer", "Contact", "DriverName", "R.ID", "Email", "Address" });

    int counter = 4;
    for (Client client : clients) {
        data.put(counter + "", new Object[] { client.getName() + " " + client.getSurname(),
                client.getContactNumber().substring(0, 3) + " " + client.getContactNumber().substring(3, 6)
                        + " " + client.getContactNumber().substring(6, 10),
                client.getAdditionalInfo(), client.getAlternativeNumber(), client.getEmail(),
                client.getAddress() });
        counter++;
    }

    Set<String> keySet = data.keySet();
    int totalSize = 34900;
    int longestCustomer = 0;

    for (int key = 1; key < keySet.size() + 1; key++) {
        Row row = sheet.createRow(key - 1);
        Object[] arr = data.get(key + "");
        for (int i = 0; i < arr.length; i++) {
            Cell cell = row.createCell(i);
            cell.setCellValue((String) arr[i]);

            if (i == 0 && !(key + "").equals("1") && longestCustomer < ((String) arr[i]).length()) {
                longestCustomer = ((String) arr[i]).length();
            }
            XSSFCellStyle borderStyle = workbook.createCellStyle();

            if (!((key + "").equals("1") || (key + "").equals("2"))) {
                borderStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex());
                borderStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex());
                borderStyle.setTopBorderColor(IndexedColors.BLACK.getIndex());
                borderStyle.setRightBorderColor(IndexedColors.BLACK.getIndex());
                if ((key + "").equals("3")) {
                    borderStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
                    borderStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);
                    borderStyle.setBorderTop(XSSFCellStyle.BORDER_MEDIUM);
                    borderStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
                    borderStyle.setAlignment(HorizontalAlignment.CENTER);
                    borderStyle.setFillPattern(XSSFCellStyle.LESS_DOTS);
                    borderStyle.setFillBackgroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
                    XSSFFont font = workbook.createFont();
                    font.setColor(IndexedColors.WHITE.getIndex());
                    font.setBold(true);
                    borderStyle.setFont(font);
                } else {
                    if (i != 0) {
                        borderStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
                    } else {
                        borderStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);
                    }
                    if (i != 4) {
                        borderStyle.setBorderRight(XSSFCellStyle.BORDER_THIN);
                    } else {
                        borderStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
                    }

                    if ((Integer.parseInt((key + ""))) != keySet.size()) {
                        borderStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
                    } else {
                        borderStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
                    }
                    borderStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);

                }
            } else {
                if (i == 3) {
                    borderStyle.setAlignment(HorizontalAlignment.RIGHT);
                }
                XSSFFont font = workbook.createFont();
                font.setFontName("Calibri");
                font.setFontHeightInPoints((short) 13);
                font.setBold(true);
                borderStyle.setFont(font);
            }

            cell.setCellStyle(borderStyle);

        }
    }

    sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
    sheet.addMergedRegion(new CellRangeAddress(0, 0, 3, 5));

    sheet.setColumnWidth(0, (longestCustomer + 2) * 240);
    sheet.setColumnWidth(1, 13 * 240);
    sheet.setColumnWidth(2, 11 * 240);
    sheet.setColumnWidth(3, 5 * 240);

    for (int i = 0; i < 4; i++) {
        totalSize -= sheet.getColumnWidth(i);
    }
    sheet.setColumnWidth(4, totalSize / 2);
    sheet.setColumnWidth(5, totalSize / 2);

    Row rowDate = sheet.createRow(keySet.size() + 1);
    Cell cell = rowDate.createCell(0);
    SimpleDateFormat sf = new SimpleDateFormat("EEE MMM yyyy HH:mm:ss");

    cell.setCellValue(sf.format(Calendar.getInstance().getTime()));
    XSSFCellStyle cellStyle = workbook.createCellStyle();
    cellStyle.setAlignment(XSSFCellStyle.ALIGN_RIGHT);
    cell.setCellStyle(cellStyle);
    sheet.addMergedRegion(new CellRangeAddress(keySet.size() + 1, keySet.size() + 1, 0, 5));

    try {
        workbook.write(excelOut);
        excelOut.close();
        System.out.println("Done - New Client");
        if (!(DSC_Main.generateAllReports)) {
            newClientLoadObj.setVisible(false);
            newClientLoadObj.dispose();
            JOptionPane.showMessageDialog(null, "NewClientReports Succesfully Generated", "Success",
                    JOptionPane.INFORMATION_MESSAGE);
        } else {
            DSC_Main.reportsDone++;
            if (DSC_Main.reportsDone == 5) {
                DSC_Main.reportsDone();
            }
        }

    } catch (IOException io) {
        newClientLoadObj.setVisible(false);
        newClientLoadObj.dispose();
        JOptionPane.showMessageDialog(null, "An error occured\nCould not create NewClientReports", "Error",
                JOptionPane.ERROR_MESSAGE);
        System.err.println("Error - Could not create new NewClientReports: ");
        io.printStackTrace();
    }

}