- /**
- * 導出
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return
- */
- public ActionForward export(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) {
- String checkBoxValueList = request.getParameter("ckv");
- if(!CommonUtil.isNotNullorEmtry(checkBoxValueList)) {
- this.saveMessages(request, "export.fail");
- return mapping.findForward("export.fail");
- }
- List<Order> listOrder = orderService.exportOrderList(checkBoxValueList);
- try {
- // SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddhhmm");
- // Calendar calendar = Calendar.getInstance();
- ServletOutputStream os = response.getOutputStream(); //獲得輸出流
- response.reset(); //清空輸出流
- String fileName = new String("訂單列表".getBytes("gb2312"), "ISO8859-1") +".xls";
- response.setHeader("Content-disposition", "attachment; filename="+ fileName); //設定輸出文件頭
- response.setContentType("application/msexcel"); //定義輸出類型
- String filePath = request.getSession().getServletContext().getRealPath("/excel/model/order.xls");
- HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filePath)); //讀取excel模板
- try {
- HSSFSheet sheet = workbook.getSheetAt(0); //讀取第一個工作簿
- HSSFRow row;
- HSSFCell cell = null;
- int rownum = 3; //添加的起始行
- HSSFCellStyle style = this.getStyle(workbook);
- Iterator<Order> it = listOrder.iterator();
- Order order = null;
- while(it.hasNext()) {
- order = new Order();
- order = it.next();
- row = sheet.createRow(rownum);
- myCreateCell(1, String.valueOf(rownum-2), row, cell, style); //列1
- myCreateCell(2, order.getAdName(), row, cell, style); //列2
- myCreateCell(3, order.getSmallAreaName(), row, cell, style); //列1
- rownum++;
- }
- workbook.write(os);
- os.flush();
- os.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
- private void myCreateCell(int cellnum, String value, HSSFRow row, HSSFCell cell, HSSFCellStyle style) {
- cell = row.createCell((short) cellnum);
- cell.setCellValue(new HSSFRichTextString(value));
- cell.setCellStyle(style);
- }
- public HSSFCellStyle getStyle(HSSFWorkbook workbook) {
- //設置字體;
- HSSFFont font = workbook.createFont();
- //設置字體大小;
- font.setFontHeightInPoints((short) 5);
- //設置字體名字;
- font.setFontName("Courier New");
- //font.setItalic(true);
- //font.setStrikeout(true);
- //設置樣式;
- HSSFCellStyle style = workbook.createCellStyle();
- //設置底邊框;
- style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
- //設置底邊框顏色;
- style.setBottomBorderColor(HSSFColor.BLACK.index);
- //設置左邊框;
- style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
- //設置左邊框顏色;
- style.setLeftBorderColor(HSSFColor.BLACK.index);
- //設置右邊框;
- style.setBorderRight(HSSFCellStyle.BORDER_THIN);
- //設置右邊框顏色;
- style.setRightBorderColor(HSSFColor.BLACK.index);
- //設置頂邊框;
- style.setBorderTop(HSSFCellStyle.BORDER_THIN);
- //設置頂邊框顏色;
- style.setTopBorderColor(HSSFColor.BLACK.index);
- //在樣式用應用設置的字體;
- style.setFont(font);
- //設置自動換行;
- style.setWrapText(false);
- //設置水平對齊的樣式爲居中對齊;
- style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
- //設置垂直對齊的樣式爲居中對齊;
- style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
- return style;
- }
POI通過讀取Excel模板生成Excel文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.