java mvc 导出excel_Java springMVC POI 导出 EXCEL

思路 :

将需要导出的数据存放在一个List中

创建一个EXCEL表 注意 XSSFWorkbook 只能操作2007以上的版本,XSSFWorkbook 只能操作2003一下的版本,所以需要的时候可以使用 Workbook创建对象处理兼容性

遍历List 并将每条数据 写入 EXCEL表中

具体代码如下 :

html 页面

导出

js 页面

function download() {

$.messager.confirm('确认', '确认把该搜索结果导出Excel表格 ?', function(r) {

if (r) {

$.messager.progress({

title : '处理中',

msg : '请稍后',

});

$.messager.progress('close');

$.ajax({

url : 'download.html',//后台方法名字

type : 'POST',

data : {

//传入后台的参数,从页面获取

},

success : function(data) {

//加载成功后的操作

}

});

}

});

}

后台代码

Model类 Student

public class Student {

private String name;

private int age;

private String address;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

}

处理逻辑,实现功能的类中代码

@RequestMapping(value = "/download.html", method = RequestMethod.POST)

public void download(HttpServletRequest request,HttpServletResponse response) {

// TODO Auto-generated method stub

List list = new ArrayList();//Student是被导出数据的类型,一般是自己写的Model类

XSSFWorkbook excelbook = new XSSFWorkbook(); //创建workBook

XSSFSheet excelSheet = excelbook.createSheet();//创建sheet表

XSSFRow excelRow = excelSheet.createRow(0);//创建行

XSSFCellStyle headerStyle = excelbook.createCellStyle();//设置 居中

headerStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);

//接下来是创建 列标题 ,cell的起始值是 0,可创建n个列标题

XSSFCell cell = excelRow.createCell(0);

cell.setCellStyle(headerStyle);//居中

cell.setCellValue("列标题 ");

//接下来遍历List,并写入EXCEL中

for(int i = 0; i < list.size(); i++){

//创建行,行号应从1开始,因为表头行(列标题)占据了第0行

excelRow = excelSheet.createRow(i + 1);

Student t = list.get(i); // List 的起始值是0

//将该行每一列的数据写入,可写n列

cell = excelRow.createCell(0);

cell.setCellValue(t.getName());

}

try {

String filePath = "EXCEL表格导出路径.xls";

writeExcel(response, excelbook, filePath, "文件名");//具体导出的方法

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

具体实现导出EXCEL的方法

//具体导出的方法

private static void writeExcel(HttpServletResponse response, Workbook work,

String filePath, String fileName) throws IOException {

OutputStream outputStream = new FileOutputStream(filePath);

try {

response.setContentType("application/ms-excel;charset=UTF-8");

response.setHeader("Content-Disposition", "attachment;filename="

.concat(String.valueOf(URLEncoder.encode(fileName + ".xls",

"UTF-8"))));

work.write(outputStream);

} catch (IOException e) {

System.out.println("输出流错误");

e.printStackTrace();

} finally {

outputStream.close();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值