forked from ltearno/formations
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
javaee-movie-db - mise en place export excel
- Loading branch information
Showing
8 changed files
with
214 additions
and
118 deletions.
There are no files selected for viewing
110 changes: 58 additions & 52 deletions
110
formation-programmation-java/projets/javaee/movie-db/pom.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
150 changes: 150 additions & 0 deletions
150
...avaee/movie-db/src/main/java/fr/lteconsulting/training/moviedb/servlet/ExportServlet.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.