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 Controlador; import BD.Aeronaves; import Modelo.Aeronave; import java.io.IOException; import java.io.OutputStream; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; /** * * @author */ public class HSSFCreateAeronave extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void destroy() { } /** * Processes requests for both HTTP GET and POST methods. * * @param request servlet request * @param response servlet response */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, URISyntaxException { response.setContentType("application/vnd.ms-excel"); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); Aeronaves a = new Aeronaves(); ArrayList<Aeronave> aeronaves = (ArrayList<Aeronave>) a.findAll(); Map<String, Object[]> data = new HashMap<String, Object[]>(); data.put("0", new Object[] { "id Aeronave", "Nombre" }); for (int i = 0; i < aeronaves.size(); i++) { String j = "" + (i + 1); data.put(j, new Object[] { "" + aeronaves.get(i).getIdAeronave(), String.copyValueOf(aeronaves.get(i).getNombre()) }); } Set<String> keyset = data.keySet(); int rownum = 0; for (String key : keyset) { Row row = sheet.createRow(rownum++); Object[] objArr = data.get(key); int cellnum = 0; for (Object obj : objArr) { Cell cell = row.createCell(cellnum++); if (obj instanceof Date) { cell.setCellValue((Date) obj); } else if (obj instanceof Boolean) { cell.setCellValue((Boolean) obj); } else if (obj instanceof String) { cell.setCellValue((String) obj); } else if (obj instanceof Double) { cell.setCellValue((Double) obj); } } } // Write the output OutputStream out = response.getOutputStream(); wb.write(out); out.close(); } /** * Handles the HTTP <code>GET</code> method. * * @param request servlet request * @param response servlet response */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { processRequest(request, response); } catch (URISyntaxException ex) { Logger.getLogger(HSSFCreateAeronave.class.getName()).log(Level.SEVERE, null, ex); } } /** * Handles the HTTP POST method. * * @param request servlet request * @param response servlet response */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { processRequest(request, response); } catch (URISyntaxException ex) { Logger.getLogger(HSSFCreateAeronave.class.getName()).log(Level.SEVERE, null, ex); } } /** * Returns a short description of the servlet. */ public String getServletInfo() { return "Example to create a workbook in a servlet using HSSF"; } }