1. /**
  2. *
  3. * @Title: exportExcel
  4. * @Description: TODO(导出到excel)
  5. * @param Page page
  6. * @return ModelAndView 返回类型
  7. * @author yk
  8. * @throws Exception
  9. */
  10. @RequestMapping(value="/excel")
  11. public ModelAndView exportExcel(Page page) throws Exception{
  12. // 输出字符串到控制台
  13. logBefore(logger, Jurisdiction.getUsername()+"导出配件订单列表到excel");
  14. // Excel导出的数据上限为10000000 如果不设置则会只导出10条数据
  15. page.setShowCount(10000000);
  16. // 获得导出权限
  17. if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  18. // 创建pd对象
  19. PageData pd = this.getPageData();
  20. // 将garage_id存入pd中
  21. pd.put("garage_id", Jurisdiction.getGarageID());
  22. // 将pd存入page对象
  23. page.setPd(pd);
  24. // 创建mv对象
  25. ModelAndView mv = new ModelAndView();
  26. // 创建Map对象,用于存入列名字与列值
  27. Map<String,Object> dataMap = new HashMap<String,Object>();
  28. // 创建titles对象,对象中的值为Excel的列名
  29. List<String> titles = new ArrayList<String>();
  30. // 向titles对象存入列名 start
  31. titles.add("开单日期"); //
  32. titles.add("单号"); //
  33. titles.add("供应商名称"); //
  34. titles.add("开单类型"); //
  35. titles.add("结算金额"); //
  36. titles.add("经手人"); //
  37. titles.add("结算方式"); //
  38. titles.add("订单状态"); //8
  39. // 向titles对象存入列名 end
  40.  
  41. // 将dataMap对象存入Excel表列名的数组
  42. dataMap.put("titles", titles);
  43. // 获取配件订单列表
  44. List<PageData> varOList = partsOrderFormService.findPurchaseOrderlistPage(page);
  45. // 创建varList对象用于存放Excel中列的值
  46. List<PageData> varList = new ArrayList<PageData>();
  47. // varList存值start
  48. for(int i=0;i<varOList.size();i++){
  49. PageData vpd = new PageData();
  50. vpd.put("var1", varOList.get(i).get("create_datetime").toString()); //
  51. vpd.put("var2", varOList.get(i).getString("order_no")); //
  52. vpd.put("var3", varOList.get(i).getString("sup_name")); //
  53. vpd.put("var4", varOList.get(i).get("order_form_type").toString()); //
  54. vpd.put("var5", varOList.get(i).get("pur_total_price").toString()); //
  55. vpd.put("var6", varOList.get(i).getString("pur_handler")); //
  56. vpd.put("var7", varOList.get(i).get("account_type").toString()); //
  57. vpd.put("var8", varOList.get(i).get("status_flag").toString()); //
  58. varList.add(vpd);
  59. }
  60. // varList存值end
  61. dataMap.put("varList", varList);
  62. // 创建Excel工具类的 erv对象
  63. ObjectExcelView erv = new ObjectExcelView();
  64. // 创建Excel表
  65. mv = new ModelAndView(erv,dataMap);
  66. return mv;
  67. }

工具类:

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

Spring mvc 导出table到Excel的更多相关文章

  1. MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

    导出EXCEL方法总结 MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可: 优点:可设置丰富的EXC ...

  2. spring mvc 导出 excel

    // js 触发导出 excel 方法 导出当前页的数据 含有条件查询的结果 // js 框架使用的 是 easyui function doExport(){ var optins = $(&quo ...

  3. 导出table为Excel

    1.HTML <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=" ...

  4. JS 导出Table为excel的三种可行方法

    [html] view plain copy<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  5. jsp导出table数据excel表

    <html> <head> <meta http-equiv="content-Type" content="text/html;chars ...

  6. 【JS】导出table到excel,同时兼容FF和IE

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. js导出table到excel,同时兼容FF和IE

    前台调用(第一个参数是table的id): <input value="导出" type="button" /> function toExcel( ...

  8. spring mvc项目中导出excel表格简单实现

    查阅了一些资料,才整理出spring mvc 项目导出excel表格的实现,其实很是简单,小计一下,方便以后查阅,也希望帮助有需要的朋友. 1.导入所需要依赖(Jar包).我使用的是maven,所以坐 ...

  9. ASP.NET MVC导出excel(数据量大,非常耗时的,异步导出)

    要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式,后台开辟一个线程将excel导出到指 ...

随机推荐

  1. git rebase commit 信息处理

    pick:正常选中 reword:选中,并且修改提交信息: edit:选中,rebase时会暂停,允许你修改这个commit(参考这里) squash:选中,会将当前commit与上一个commit合 ...

  2. Jquery的jqzoom插件的使用(图片放大镜)

    今天学习一下,图片放大镜功能,需要使用插件JQzoom 引入文件 <script type="text/javascript" src="js/jquery.min ...

  3. install the Mondo Rescue utility in Ubuntu 12.04 or 12.10.

      1. Open a terminal window. 2. Type in the following commands, then hit Enter after each.   wget ft ...

  4. QuickStart系列:docker部署之MariaDB

    Centos7里面没有Mysql 取而代之的是MariaDB,MariaDB是完全开源的.MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的 ...

  5. 你应该这样理解JVM内存管理

    在进行Java程序设计时,一般不涉及内存的分配和内存回收的相关代码,此处引用一句话: Java和C++之间存在一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外的人想进去,墙里面的人想出来 ,个人从这 ...

  6. mysql 从库执行insert失败导致同步停止

    服务配置:一主一从,版本都是 5.5 .主库配置了 binlog-do-db binlog-ignore-db 问题复述:运营人员发现,昨天的数据统计不对.数据分析服务查询的是从库的数据. 到tomc ...

  7. csv,json格式数据的读写

    #!python3 # -*- coding:utf-8 -*- #CSV stands for "comma-separated values",and CSV files ar ...

  8. Linux命令----su(切换用户)以及passwd(修改用户密码)

    一.su命令登录root 用户在使用telnet命令可以远程登录,但不可以登录root,这样就需要使用su命令来登录root用户. telnet登录(不能登录root)--- 1.启动终端 输入 te ...

  9. 页面显示时间js

    //页面显示时间 <span align="left" id="OperatorTime"> </span> <script> ...

  10. 3.10 C++虚基类 虚继承

    参考:http://www.weixueyuan.net/view/6367.html 总结: 本例即为典型的菱形继承结构,类A中的成员变量及成员函数继承到类D中均会产生两份,这样的命名冲突非常的棘手 ...