Skip to content

Commit

Permalink
javaee-movie-db - mise en place export excel
Browse files Browse the repository at this point in the history
  • Loading branch information
ltearno committed Nov 13, 2017
1 parent 0d5ab62 commit ff63679
Show file tree
Hide file tree
Showing 8 changed files with 214 additions and 118 deletions.
110 changes: 58 additions & 52 deletions formation-programmation-java/projets/javaee/movie-db/pom.xml
Original file line number Diff line number Diff line change
@@ -1,55 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>fr.lteconsulting.training</groupId>
<artifactId>movie-db</artifactId>
<version>1.0-SNAPSHOT</version>

<packaging>war</packaging>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>

<version.wildfly>11.0.0.Final</version.wildfly>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>wildfly-javaee7-with-tools</artifactId>
<version>${version.wildfly}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>fr.lteconsulting.training</groupId>
<artifactId>movie-db</artifactId>
<version>1.0-SNAPSHOT</version>

<packaging>war</packaging>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>

<version.wildfly>11.0.0.Final</version.wildfly>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>wildfly-javaee7-with-tools</artifactId>
<version>${version.wildfly}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
package fr.lteconsulting.training.moviedb.servlet;

import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/export.xls")
public class ExportServlet extends HttpServlet {
private static final String FILENAME = "export.xls";

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setHeader("Content-disposition", "attachment; filename=" + FILENAME);
resp.setHeader("content-type", "application/xls");

Workbook wb = new HSSFWorkbook();
// create a new sheet
Sheet s = wb.createSheet();
// declare a row object reference
Row r = null;
// declare a cell object reference
Cell c = null;
// create 3 cell styles
CellStyle cs = wb.createCellStyle();
CellStyle cs2 = wb.createCellStyle();
CellStyle cs3 = wb.createCellStyle();
DataFormat df = wb.createDataFormat();
// create 2 fonts objects
Font f = wb.createFont();
Font f2 = wb.createFont();

//set font 1 to 12 point type
f.setFontHeightInPoints((short) 12);
//make it blue
f.setColor((short) 0xc);
// make it bold
//arial is the default font
//f.setBoldweight(Font.BOLDWEIGHT_BOLD);

//set font 2 to 10 point type
f2.setFontHeightInPoints((short) 10);
//make it red
f2.setColor((short) Font.COLOR_RED);
//make it bold
//f2.setBoldweight(Font.BOLDWEIGHT_BOLD);

f2.setStrikeout(true);

//set cell stlye
cs.setFont(f);
//set the cell format
cs.setDataFormat(df.getFormat("#,##0.0"));

//set a thin border
//cs2.setBorderBottom(cs2.BORDER_THIN);
//fill w fg fill color
//cs2.setFillPattern((short) CellStyle.SOLID_FOREGROUND);
//set the cell format to text see DataFormat for a full list
cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));

// set the font
cs2.setFont(f2);

// set the sheet name in Unicode
wb.setSheetName(0, "\u0422\u0435\u0441\u0442\u043E\u0432\u0430\u044F " +
"\u0421\u0442\u0440\u0430\u043D\u0438\u0447\u043A\u0430");
// in case of plain ascii
// wb.setSheetName(0, "HSSF Test");
// create a sheet with 30 rows (0-29)
int rownum;
for (rownum = (short) 0; rownum < 30; rownum++) {
// create a row
r = s.createRow(rownum);
// on every other row
if ((rownum % 2) == 0) {
// make the row height bigger (in twips - 1/20 of a point)
r.setHeight((short) 0x249);
}

//r.setRowNum(( short ) rownum);
// create 10 cells (0-9) (the += 2 becomes apparent later
for (short cellnum = (short) 0; cellnum < 10; cellnum += 2) {
// create a numeric cell
c = r.createCell(cellnum);
// do some goofy math to demonstrate decimals
c.setCellValue(rownum * 10000 + cellnum
+ (((double) rownum / 1000)
+ ((double) cellnum / 10000)));

String cellValue;

// create a string cell (see why += 2 in the
c = r.createCell((short) (cellnum + 1));

// on every other row
if ((rownum % 2) == 0) {
// set this cell to the first cell style we defined
c.setCellStyle(cs);
// set the cell's string value to "Test"
c.setCellValue("Test");
} else {
c.setCellStyle(cs2);
// set the cell's string value to "\u0422\u0435\u0441\u0442"
c.setCellValue("\u0422\u0435\u0441\u0442");
}


// make this column a bit wider
s.setColumnWidth((short) (cellnum + 1), (short) ((50 * 8) / ((double) 1 / 20)));
}
}

//draw a thick black border on the row at the bottom using BLANKS
// advance 2 rows
rownum++;
rownum++;

r = s.createRow(rownum);

// define the third style to be the default
// except with a thick black border at the bottom
//cs3.setBorderBottom(cs3.BORDER_THICK);

//create 50 cells
for (short cellnum = (short) 0; cellnum < 50; cellnum++) {
//create a blank type cell (no value)
c = r.createCell(cellnum);
// set it to the thick black border style
c.setCellStyle(cs3);
}

//end draw thick black border


// demonstrate adding/naming and deleting a sheet
// create a sheet, set its title then delete it
s = wb.createSheet();
wb.setSheetName(1, "DeletedSheet");
wb.removeSheetAt(1);

wb.write(resp.getOutputStream());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,6 @@
<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="utf-8"/>
<title>Categories</title>
<link rel="stylesheet" href="Skeleton-2.0.4/css/normalize.css">
<link rel="stylesheet" href="Skeleton-2.0.4/css/skeleton.css">
</head>
<body>

<%
List<Categorie> categories = (List<Categorie>) request.getAttribute("categories");
Expand Down Expand Up @@ -60,6 +52,3 @@
<td></td>
</tr>
</table>

</body>
</html>
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
<%@ page import="fr.lteconsulting.training.moviedb.model.Categorie" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="utf-8" />
<title>Edition catégorie</title>
<link rel="stylesheet" href="Skeleton-2.0.4/css/normalize.css">
<link rel="stylesheet" href="Skeleton-2.0.4/css/skeleton.css">
</head>
<body>

<%
Categorie categorie = (Categorie) request.getAttribute("categorie");
Expand All @@ -19,6 +11,4 @@
<input type="hidden" name="id" value="<%=categorie.getId()!=null?categorie.getId():"" %>">
<label>Nom: <input type="text" name="nom" value="<%=categorie.getNom()%>" autofocus></label>
<button>Valider</button>
</form>
</body>
</html>
</form>
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
<%@ page import="fr.lteconsulting.training.moviedb.model.Fabricant" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="utf-8"/>
<title>Edition catégorie</title>
<link rel="stylesheet" href="Skeleton-2.0.4/css/normalize.css">
<link rel="stylesheet" href="Skeleton-2.0.4/css/skeleton.css">
</head>
<body>

<%
Fabricant fabricant = (Fabricant) request.getAttribute("fabricant");
Expand All @@ -20,6 +12,4 @@
<label>Nom: <input type="text" name="nom" value="<%=fabricant.getNom()%>" autofocus></label>
<label>Adresse: <input type="text" name="adresse" value="<%=fabricant.getAdresse()%>"></label>
<button>Valider</button>
</form>
</body>
</html>
</form>
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,6 @@
<%@ page import="fr.lteconsulting.training.moviedb.model.Produit" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="utf-8"/>
<title>Edition produit</title>
<link rel="stylesheet" href="Skeleton-2.0.4/css/normalize.css">
<link rel="stylesheet" href="Skeleton-2.0.4/css/skeleton.css">
</head>
<body>

<%
Produit produit = (Produit) request.getAttribute("produit");
Expand Down Expand Up @@ -43,6 +35,4 @@
}%>
</select></label>
<button>Valider</button>
</form>
</body>
</html>
</form>
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,6 @@
<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="utf-8"/>
<title>Categories</title>
<link rel="stylesheet" href="Skeleton-2.0.4/css/normalize.css">
<link rel="stylesheet" href="Skeleton-2.0.4/css/skeleton.css">
</head>
<body>

<%
List<Fabricant> fabricants = (List<Fabricant>) request.getAttribute("fabricants");
Expand Down Expand Up @@ -62,7 +54,4 @@
</td>
<td></td>
</tr>
</table>

</body>
</html>
</table>
Loading

0 comments on commit ff63679

Please sign in to comment.