springmvc实现导出数据信息为excle表格示例代码

发布时间 - 2026-01-10 22:20:09    点击率:

1.项目增加导出日志信息

2.项目中导入poi-*.jar等操作excel文件的jar文件

  • poi-3.7-20120326.jar
  • poi-excelant-3.7-20101029.jar
  • poi-ooxml-3.7.jar
  • poi-ooxml-schemas-3.7.jar

Excel导出就是根据前台条件将参数传到controller,根据参数去数据库中进行查询,查询出list集合,将list集合生成excle数据下载。

代码片段:

Contorller.Java

/** 
   * 导出信息 
   * @param model 
   */ 
  @RequestMapping("exportCustomer.do") 
  @SystemControllerLog(description = "数据库表单导出Excle") 
  public void exportCustomer(ModelMap model) { 
    //TODO 如需添加条件 
    //model.addAttribute("username", nameStr); 
    //获取需要导出的数据List 
    List<CMcustomer> cusList=customerService.exportCustomer(model); 
      //使用方法生成excle模板样式 
    HSSFWorkbook workbook = customerService.createExcel(cusList, request); 
    SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); // 定义文件名格式 
 
    try { 
    //定义excle名称 ISO-8859-1防止名称乱码 
      String msg = new String( 
          ("客户信息_" + format.format(new Date()) + ".xls").getBytes(), 
          "ISO-8859-1"); 
      // 以导出时间作为文件名 
      response.setContentType("application/vnd.ms-excel"); 
      response.addHeader("Content-Disposition", "attachment;filename=" 
          + msg); 
      workbook.write(response.getOutputStream()); 
    } catch (IOException e) { 
      logger.error(e); 
    } 
  } 

2.Service中createExcel方法

public HSSFWorkbook createExcel(List<CMcustomer> cusList, 
    HttpServletRequest request) { 
 
    // 创建一个webbook,对应一个excel文件 
    HSSFWorkbook workbook = new HSSFWorkbook(); 
    // 在webbook中添加一个sheet,对应excel文件中的sheet 
    HSSFSheet sheet = workbook.createSheet("客户信息表"); 
    // 设置列宽 
    sheet.setColumnWidth(0, 25 * 100); 
    sheet.setColumnWidth(1, 35 * 100); 
    sheet.setColumnWidth(2, 35 * 100); 
    sheet.setColumnWidth(3, 40 * 100); 
    sheet.setColumnWidth(4, 45 * 100); 
    sheet.setColumnWidth(5, 45 * 100); 
    sheet.setColumnWidth(6, 50 * 100); 
    sheet.setColumnWidth(7, 80 * 100); 
    sheet.setColumnWidth(8, 35 * 100); 
    sheet.setColumnWidth(9, 40 * 100); 
    // 在sheet中添加表头第0行 
    HSSFRow row = sheet.createRow(0); 
    // 创建单元格,并设置表头,设置表头居中 
    HSSFCellStyle style = workbook.createCellStyle(); 
    // 创建一个居中格式 
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER); 
    // 带边框 
    style.setBorderBottom(HSSFCellStyle.BORDER_THIN); 
    // 生成一个字体 
    HSSFFont font = workbook.createFont(); 
    // 字体增粗 
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
    // 字体大小 
    font.setFontHeightInPoints((short) 12); 
    // 把字体应用到当前的样式 
    style.setFont(font); 
 
    // 单独设置整列居中或居左 
    HSSFCellStyle style1 = workbook.createCellStyle(); 
    style1.setAlignment(HSSFCellStyle.ALIGN_CENTER); 
    HSSFCellStyle style2 = workbook.createCellStyle(); 
    style2.setAlignment(HSSFCellStyle.ALIGN_LEFT); 
 
    HSSFCellStyle style3 = workbook.createCellStyle(); 
    style3.setAlignment(HSSFCellStyle.ALIGN_LEFT); 
    HSSFFont hssfFont = workbook.createFont(); 
    hssfFont.setColor(HSSFFont.COLOR_RED); 
    hssfFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
    style3.setFont(hssfFont); 
 
    HSSFCellStyle style4 = workbook.createCellStyle(); 
    style4.setAlignment(HSSFCellStyle.ALIGN_LEFT); 
    HSSFFont hssfFont1 = workbook.createFont(); 
    hssfFont1.setColor(HSSFFont.COLOR_NORMAL); 
    hssfFont1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
    style4.setFont(hssfFont1); 
 
    HSSFCell cell = row.createCell(0); 
    cell.setCellValue("序号"); 
    cell.setCellStyle(style); 
 
    cell = row.createCell(1); 
    cell.setCellValue("客户姓名"); 
    cell.setCellStyle(style); 
 
    cell = row.createCell(2); 
    cell.setCellValue("性别"); 
    cell.setCellStyle(style); 
 
    cell = row.createCell(3); 
    cell.setCellValue("状态"); 
    cell.setCellStyle(style); 
 
    cell = row.createCell(4); 
    cell.setCellValue("电话"); 
    cell.setCellStyle(style); 
 
    cell = row.createCell(5); 
    cell.setCellValue("邮箱"); 
    cell.setCellStyle(style); 
 
    cell = row.createCell(6); 
    cell.setCellValue("地址"); 
    cell.setCellStyle(style); 
    for (int i = 0; i < cusList.size(); i++) { 
      String logTypeDis = ""; 
      row = sheet.createRow(i + 1); 
      CMcustomer cMcustomer = cusList.get(i); 
      // 创建单元格,并设置值 
      // 编号列居左 
      HSSFCell c1 = row.createCell(0); 
      c1.setCellStyle(style2); 
      c1.setCellValue(i); 
      HSSFCell c2 = row.createCell(1); 
      c2.setCellStyle(style1); 
      c2.setCellValue(cMcustomer.getCustomername());//客户姓名 
 
      String sexStr = cMcustomer.getSex();//性别 0:女,1:男 
      String sex=""; 
      if ("1".equals(sexStr)) { 
        sex="男"; 
      } 
      if ("0".equals(sexStr)) { 
        sex="女"; 
      } 
      HSSFCell c3 = row.createCell(2);//性别 
      c3.setCellStyle(style1); 
      c3.setCellValue(sex); 
       
      String statusStr = cMcustomer.getStatus();//客户状态1.在职,2.离职 
      String status=""; 
      if ("1".equals(statusStr)) { 
        status="在职"; 
      } 
      if ("2".equals(statusStr)) { 
        status="离职"; 
      } 
      HSSFCell c4 = row.createCell(3);//状态 
      c4.setCellStyle(style1); 
      c4.setCellValue(status); 
      String customerid = cMcustomer.getCustomerid();//客户id 
      List<CMphone> phoneList = cMphoneMapper.selectByCustomerid(customerid); 
      String phone=""; 
      if (phoneList!=null&&phoneList.size()>0) { 
        for (int j = 0; j < phoneList.size(); j++) { 
          phone = phoneList.get(j).getPhone(); 
        } 
      } 
      HSSFCell c5 = row.createCell(4);//电话 
      c5.setCellStyle(style1); 
      c5.setCellValue(phone); 
      List<CMemail> emailList = cMemailMapper.selectAll(customerid); 
      String email=""; 
      if (emailList!=null&&emailList.size()>0) { 
        for (int j = 0; j < emailList.size(); j++) { 
          email = emailList.get(j).getEmail(); 
        } 
      } 
      HSSFCell c6 = row.createCell(5);//邮箱 
      c6.setCellStyle(style1); 
      c6.setCellValue(email); 
      CMaddress cMaddress=new CMaddress(); 
      cMaddress.setCustomerid(customerid); 
    List<CMaddress> adderssList = cMaddressMapper.selectAll(cMaddress); 
      String adderss=""; 
      if (adderssList!=null&&adderssList.size()>0) { 
        for (int j = 0; j < adderssList.size(); j++) { 
          adderss = adderssList.get(j).getAddress(); 
        } 
      } 
      HSSFCell c7 = row.createCell(6);//地址 
      c7.setCellStyle(style1); 
      c7.setCellValue(adderss); 
 
      //使用默认格式 
      row.createCell(1).setCellValue(cMcustomer.getCustomername()); 
      row.createCell(2).setCellValue(sex); 
      row.createCell(3).setCellValue(status); 
      row.createCell(4).setCellValue(phone); 
      row.createCell(5).setCellValue(email); 
      row.createCell(6).setCellValue(adderss); 
    } 
    return workbook; 
} 

3.页面jsp调用

//导出信息 
    function exporBtn(){ 
    $.ajax({ 
      type:"POST", 
      url:"<%=path%>/customer/exportCustomer.do", 
      success:function(data){ 
        window.open('<%=path%>/customer/exportCustomer.do'); 
      } 
       
    }); 
  } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# spring  # mvc  # 导出excel  # springmvc中导出excel  # 详解poi+springmvc+springjdbc导入导出excel实例  # SpringMVC上传和解析Excel方法  # 创建一个  # 单元格  # 居左  # 如需  # 表单  # 数据库中  # 大家多多  # setContentType  # application  # response  # ms  # addHeader  # vnd  # Content  # Disposition  # getBytes  # format  # yyyyMMddHHmmss  # SimpleDateFormat  # createExcel 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何基于PHP生成高效IDC网络公司建站源码?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  javascript中的try catch异常捕获机制用法分析  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Laravel如何实现API版本控制_Laravel版本化API设计方案  详解Android中Activity的四大启动模式实验简述  Laravel如何创建自定义Facades?(详细步骤)  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  如何用IIS7快速搭建并优化网站站点?  MySQL查询结果复制到新表的方法(更新、插入)  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  如何快速启动建站代理加盟业务?  如何在橙子建站中快速调整背景颜色?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  Android仿QQ列表左滑删除操作  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel Fortify是什么,和Jetstream有什么关系  Angular 表单中正确绑定输入值以确保提交与验证正常工作  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  如何为不同团队 ID 动态生成多个“认领值班”按钮  北京企业网站设计制作公司,北京铁路集团官方网站?  Laravel如何实现API资源集合?(Resource Collection教程)  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  公司网站制作需要多少钱,找人做公司网站需要多少钱?  如何基于云服务器快速搭建网站及云盘系统?  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何在 React 中条件性地遍历数组并渲染元素  音响网站制作视频教程,隆霸音响官方网站?  Laravel如何配置Horizon来管理队列?(安装和使用)  高性能网站服务器配置指南:安全稳定与高效建站核心方案  JavaScript如何实现路由_前端路由原理是什么  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  详解Huffman编码算法之Java实现  Laravel怎么为数据库表字段添加索引以优化查询  如何自定义建站之星网站的导航菜单样式?  深圳网站制作平台,深圳市做网站好的公司有哪些?  网站制作价目表怎么做,珍爱网婚介费用多少?  js代码实现下拉菜单【推荐】  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门