Commit 8ab85aae by Billy Larru

exportando excel con la libreria apache-poi

parent 816253b7
...@@ -27,13 +27,6 @@ ...@@ -27,13 +27,6 @@
<artifactId>json</artifactId> <artifactId>json</artifactId>
<version>20180130</version> <version>20180130</version>
</dependency> </dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
<dependency> <dependency>
<groupId>io.github.cdimascio</groupId> <groupId>io.github.cdimascio</groupId>
...@@ -41,6 +34,12 @@ ...@@ -41,6 +34,12 @@
<version>3.1.1</version> <version>3.1.1</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -76,7 +76,7 @@ public class RequestsFilter implements Filter { ...@@ -76,7 +76,7 @@ public class RequestsFilter implements Filter {
for (int i = 0; i < urls.length(); i++) { for (int i = 0; i < urls.length(); i++) {
vistas.add(urls.get(i)); vistas.add(urls.get(i));
} }
vistas.add("main.jsp");
String ruta = request.getRequestURI(); String ruta = request.getRequestURI();
int indice = GeneralUtils.obtenerIndex(ruta); int indice = GeneralUtils.obtenerIndex(ruta);
String rutaJsp = ruta.substring(indice, ruta.length()); String rutaJsp = ruta.substring(indice, ruta.length());
......
/*
* 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 asistencia.servlets;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
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;
/**
*
* @author sistem19user
*/
public class CrearExcel {
public static void main(String args[]) {
//Crear libro de trabajo en blanco
Workbook workbook = new HSSFWorkbook();
//Crea hoja nueva
Sheet sheet = workbook.createSheet("Reporte de montos");
CellStyle headerStyle = workbook.createCellStyle();
headerStyle.setFillForegroundColor(IndexedColors.AQUA.getIndex());
headerStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
String[] headers = {"Identificador", "Nombre", "Apellidos"};
Row headerRow = sheet.createRow(0);
for (int i = 0; i < headers.length; ++i) {
String header = headers[i];
Cell cell = headerRow.createCell(i);
cell.setCellStyle(headerStyle);
cell.setCellValue(header);
}
Object[][] data = new Object[][]{
new Object[]{1, "María", "Remen"},
new Object[]{2, "David", "Allos"},
new Object[]{3, "Carlos", "Caritas"}
};
int i = 0;
for(String header: headers){
Cell cell = headerRow.createCell(i++);
cell.setCellStyle(headerStyle);
cell.setCellValue(header);
}
i = 1;
Row row;
for(Object[] array: data){
row = sheet.createRow(i++);
Cell cell;
int j = 0;
for(Object value: array){
cell = row.createCell(j++);
if(value instanceof Integer){
cell.setCellValue(Integer.parseInt(value.toString()));
}else if(value instanceof String){
cell.setCellValue(value.toString());
}else if(value instanceof Double){
cell.setCellValue(Double.parseDouble(value.toString()));
}else if(value instanceof Boolean){
cell.setCellValue((boolean)value);
}else{
cell.setCellValue(value.toString());
}
}
}
sheet.createFreezePane(0, 1);
try {
//Se genera el documento
FileOutputStream out = new FileOutputStream(new File("D:/ejemplo.xls"));
workbook.write(out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/*
* 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 asistencia.servlets;
import asistencia.utilities.ExcelHelper;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PoliciasServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=sample.xls");
OutputStream output = response.getOutputStream();
ExcelHelper excel = new ExcelHelper(output);
String[] headers = {"id", "nombres", "apellidos", "edad"};
Object[][] data = new Object[][]{
new Object[]{"1", "Felipe", "Escala", "22"},
new Object[]{"2", "Luis", "Gangas", "23"},
};
excel.setHeaders(headers);
excel.setSheetName("Pruebas");
excel.setData(data);
excel.generate();
}
}
/*
* 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 asistencia.utilities;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
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;
/**
*
* @author sistem19user
*/
public class ExcelHelper {
private String[] headers;
private Object[][] data;
private OutputStream output;
private String sheetName;
public ExcelHelper(OutputStream output) {
this.output = output;
}
public void setHeaders(String[] headers) {
this.headers = headers;
}
public void setSheetName(String sheetName) {
this.sheetName = sheetName;
}
public void setData(Object[][] data){
this.data = data;
}
public void generate() throws IOException {
Workbook workbook = new HSSFWorkbook();
//Crea hoja nueva
Sheet sheet = workbook.createSheet(sheetName);
CellStyle headerStyle = workbook.createCellStyle();
headerStyle.setFillForegroundColor(IndexedColors.AQUA.getIndex());
headerStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
Row headerRow = sheet.createRow(0);
int i = 0;
for (String header : headers) {
Cell cell = headerRow.createCell(i++);
cell.setCellStyle(headerStyle);
cell.setCellValue(header);
}
i = 1;
Row row;
for (Object[] array : data) {
row = sheet.createRow(i++);
Cell cell;
int j = 0;
for (Object value : array) {
cell = row.createCell(j++);
if (value instanceof Integer) {
cell.setCellValue(Integer.parseInt(value.toString()));
} else if (value instanceof String) {
cell.setCellValue(value.toString());
} else if (value instanceof Double) {
cell.setCellValue(Double.parseDouble(value.toString()));
} else if (value instanceof Boolean) {
cell.setCellValue((boolean) value);
} else {
cell.setCellValue(value.toString());
}
}
}
sheet.createFreezePane(0, 1);
workbook.write(output);
}
}
...@@ -25,6 +25,10 @@ ...@@ -25,6 +25,10 @@
<servlet-name>RedireccionarServlet</servlet-name> <servlet-name>RedireccionarServlet</servlet-name>
<servlet-class>asistencia.servlets.RedireccionarServlet</servlet-class> <servlet-class>asistencia.servlets.RedireccionarServlet</servlet-class>
</servlet> </servlet>
<servlet>
<servlet-name>PoliciasServlet</servlet-name>
<servlet-class>asistencia.servlets.PoliciasServlet</servlet-class>
</servlet>
<servlet-mapping> <servlet-mapping>
<servlet-name>InterceptarRedireccionServlet</servlet-name> <servlet-name>InterceptarRedireccionServlet</servlet-name>
<url-pattern>/vistas/interceptar</url-pattern> <url-pattern>/vistas/interceptar</url-pattern>
...@@ -45,6 +49,10 @@ ...@@ -45,6 +49,10 @@
<error-code>404</error-code> <error-code>404</error-code>
<location>/vistas/error/error.jsp</location> <location>/vistas/error/error.jsp</location>
</error-page> </error-page>
<servlet-mapping>
<servlet-name>PoliciasServlet</servlet-name>
<url-pattern>/servlet/PoliciasServlet</url-pattern>
</servlet-mapping>
<session-config> <session-config>
<session-timeout> <session-timeout>
30 30
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment