导入导出为excel

一·导入excel:类似于文件上传

二·导出excel 基于spring mvc

1.简单的html来表示excel(java,php都可以使用)

@RequestMapping(value=" ",method=RequestMethod.GET)

@ResponseBody
public String index2(HttpServletResponse response) throws IOException{
String filename="haha.xls";
String str = "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\nxmlns:x=\"urn:schemas-microsoft-com:office:excel\"\r\nxmlns=\"http://www.w3.org/TR/REC-html40\">\r\n<head>\r\n<meta http-equiv=Content-Type content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>"; 
str +="<table border=1><tr>";
str+="<td style='vnd.ms-excel.numberformat:@'>"+"id"+"</td>"; 
str+="<td style='vnd.ms-excel.numberformat:@'>"+"name"+"</td>"; 
str+="<td style='vnd.ms-excel.numberformat:@'>"+"age"+"</td>"; 
str+="</tr>";

for(int i=0;i<3;i++){
str+="<tr>";
str+="<td style='vnd.ms-excel.numberformat:@'>"+1+"</td>"; 
str+="<td style='vnd.ms-excel.numberformat:@'>"+"ys"+"</td>"; 
str+="<td style='vnd.ms-excel.numberformat:@'>"+21+"</td>"+"</tr>"; 
}

str += "</table></body></html>"; 
response.addHeader( "Content-Type"," application/vnd.ms-excel; name='excel'" ); 
response.addHeader( "Content-type"," application/octet-stream" ); 
response.addHeader( "Content-Disposition"," attachment; filename="+filename ); 
response.addHeader( "Cache-Control"," must-revalidate, post-check=0, pre-check=0" ); 
response.addHeader( "Pragma"," no-cache" ); 
response.addHeader( "Expires","0" ); 
//PrintWriter outputStream = response.getWriter();
//outputStream.write(str);

return str;

}

2.java jxl,poi导出excel

下面为poi方式,XSSF...兼容高版本excel


@RequestMapping(value=" ",method=RequestMethod.GET)
@ResponseBody
public void xls(HttpServletResponse response) throws IOException, RowsExceededException, WriteException{
String[] title={"id","name","sex"};
XSSFWorkbook workbook=new XSSFWorkbook();
Sheet sheet=workbook.createSheet();
Row row=sheet.createRow(0);
Cell cell=null;
for(int i=0;i<title.length;i++){
cell=row.createCell(i);
cell.setCellValue(title[i]);
}
for(int i=1;i<10;i++){
Row neRow=sheet.createRow(i);
Cell cell2=neRow.createCell(0);
cell2.setCellValue("a"+i);
cell2=neRow.createCell(1);
cell2.setCellValue("user"+i);
cell2=neRow.createCell(2);
cell2.setCellValue("男");
}
response.addHeader( "Content-Type"," application/vnd.ms-excel; name='excel'" ); 
response.addHeader( "Content-type"," application/octet-stream" ); 
response.addHeader( "Content-Disposition"," attachment; filename="+"h.xls" ); 
response.addHeader( "Cache-Control"," must-revalidate, post-check=0, pre-check=0" ); 
response.addHeader( "Pragma"," no-cache" ); 
response.addHeader( "Expires","0" ); 
OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.close();

}

总结,第一种会简单些,直接用html转excel,第二种有java的封装类,这两种相对简单实现,网上有些是由很多对象,还有封装方法来实现导出excel的,比较复杂就没深入学习。但是上面提供这两种方法,会出现点开后excel报格式错误,具体也没看什么鬼情况,但是数据都是正确的。over~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值