下载:web层业务实现 @Action(value="subArea_exportExl")public void exportExl(){HttpServletResponse response = ServletActionContext.getResponse();try {ServletOutputStream out = response.getOutputStream();String agent=ServletActionCont
@Action(value="subArea_exportExl")
public void exportExl(){
HttpServletResponse response = ServletActionContext.getResponse();
try {
ServletOutputStream out = response.getOutputStream();
String agent=ServletActionContext.getRequest().getHeader("User-Agent");
String fileName=FileUtils.encodeDownloadFilename("分区数据.xls", agent);
response.setHeader("content-disposition", "attachment;fileName="+fileName);
response.setContentType("application/vnd.ms-excel");
subAreaService.exportExl(out);
} catch (Exception e) {
e.printStackTrace();
}
}
下载-基于模板:service层业务实现
@Override
public void exportExl(ServletOutputStream out) throws Exception {
File file=new File("e:\\subArea.xls");
HSSFWorkbook book=new HSSFWorkbook(new FileInputStream(file));
HSSFSheet sheet3 = book.getSheetAt(2);
HSSFCellStyle cellStyle = sheet3.getRow(0).getCell(0).getCellStyle();
List
list=subAreaDao.findAll();
HSSFSheet sheet = book.getSheetAt(0);
int k=2;
// 分拣编号 省 市 区 关键字 起始号 终止号 单双号 辅助关键字
HSSFRow row=null;
for (SubArea subArea : list) {
row= sheet.createRow(k);
row.createCell(0).setCellValue(subArea.getId());
row.createCell(1).setCellValue(subArea.getArea().getProvince());
row.createCell(2).setCellValue(subArea.getArea().getCity());
row.createCell(3).setCellValue(subArea.getArea().getDistrict());
row.createCell(4).setCellValue(subArea.getKeyWords());
row.createCell(5).setCellValue(subArea.getStartNum());
row.createCell(6).setCellValue(subArea.getEndNum());
row.createCell(7).setCellValue(subArea.getSingle());
row.createCell(8).setCellValue(subArea.getAssistKeyWords());
for (int i = 0; i < 9; i++) {
row.getCell(i).setCellStyle(cellStyle);
}
k++;
}
book.write(out);
}
fileUtils
public static String encodeDownloadFilename(String filename, String agent)
throws IOException {
if (agent.contains("Firefox")) { // 火狐浏览器
filename = "=?UTF-8?B?"
+ new BASE64Encoder().encode(filename.getBytes("utf-8"))
+ "?=";
filename = filename.replaceAll("\r\n", "");
} else { // IE及其他浏览器
filename = URLEncoder.encode(filename, "utf-8");
filename = filename.replace("+"," ");
}
return filename;
}
subArea.xls
subArea.xls
