ObjectExcelView.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.sooka.common.utils;
  2. import java.util.Date;
  3. import java.util.List;
  4. import java.util.Map;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import org.apache.poi.hssf.usermodel.HSSFCell;
  8. import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  9. import org.apache.poi.hssf.usermodel.HSSFFont;
  10. import org.apache.poi.hssf.usermodel.HSSFSheet;
  11. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  12. import org.springframework.web.servlet.view.document.AbstractExcelView;
  13. /**
  14. * 导入到EXCEL
  15. * 类名称:ObjectExcelView.java
  16. * 类描述:
  17. * @author FH
  18. * 作者单位:
  19. * 联系方式:
  20. * @version 1.0
  21. */
  22. public class ObjectExcelView extends AbstractExcelView{
  23. @Override
  24. protected void buildExcelDocument(Map<String, Object> model,
  25. HSSFWorkbook workbook, HttpServletRequest request,
  26. HttpServletResponse response) throws Exception {
  27. // TODO Auto-generated method stub
  28. Date date = new Date();
  29. String filename = Tools.date2Str(date, "yyyyMMddHHmmss");
  30. HSSFSheet sheet;
  31. HSSFCell cell;
  32. response.setContentType("application/octet-stream");
  33. response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls");
  34. sheet = workbook.createSheet("sheet1");
  35. List<String> titles = (List<String>) model.get("titles");
  36. int len = titles.size();
  37. HSSFCellStyle headerStyle = workbook.createCellStyle(); //标题样式
  38. headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  39. headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
  40. HSSFFont headerFont = workbook.createFont(); //标题字体
  41. headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  42. headerFont.setFontHeightInPoints((short)11);
  43. headerStyle.setFont(headerFont);
  44. short width = 20,height=25*20;
  45. sheet.setDefaultColumnWidth(width);
  46. for(int i=0; i<len; i++){ //设置标题
  47. String title = titles.get(i);
  48. cell = getCell(sheet, 0, i);
  49. cell.setCellStyle(headerStyle);
  50. setText(cell,title);
  51. }
  52. sheet.getRow(0).setHeight(height);
  53. HSSFCellStyle contentStyle = workbook.createCellStyle(); //内容样式
  54. contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  55. List<PageData> varList = (List<PageData>) model.get("varList");
  56. int varCount = varList.size();
  57. for(int i=0; i<varCount; i++){
  58. PageData vpd = varList.get(i);
  59. for(int j=0;j<len;j++){
  60. String varstr = vpd.getString("var"+(j+1)) != null ? vpd.getString("var"+(j+1)) : "";
  61. cell = getCell(sheet, i+1, j);
  62. cell.setCellStyle(contentStyle);
  63. setText(cell,varstr);
  64. }
  65. }
  66. }
  67. }