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入门

