博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc生成文件(excel、pdf...)和文件上传
阅读量:5957 次
发布时间:2019-06-19

本文共 9294 字,大约阅读时间需要 30 分钟。

生成文件 

以下以下载excel文件为例,如有其它需要可自定义实现类继承相应springmvc提供的试图接口即可。

如生成Excel则继承AbstractExcelView,生成PDF则继承AbstractPdfView。

 

java代码:

1     /* 2      * 导出用户信息到EXCEL 3      *  4      * @return 5      */ 6  @RequestMapping(value = "/excel") 7  public ModelAndView exportExcel() { 8  ModelAndView mv = this.getModelAndView(); 9  PageData pd = new PageData(); 10  pd = this.getPageData(); 11  try { 12 13  // 检索条件=== 14  String USERNAME = pd.getString("USERNAME"); 15  if (null != USERNAME && !"".equals(USERNAME)) { 16  USERNAME = USERNAME.trim(); 17  pd.put("USERNAME", USERNAME); 18  } 19  String lastLoginStart = pd.getString("lastLoginStart"); 20  String lastLoginEnd = pd.getString("lastLoginEnd"); 21  if (lastLoginStart != null && !"".equals(lastLoginStart)) { 22  lastLoginStart = lastLoginStart + " 00:00:00"; 23  pd.put("lastLoginStart", lastLoginStart); 24  } 25  if (lastLoginEnd != null && !"".equals(lastLoginEnd)) { 26  lastLoginEnd = lastLoginEnd + " 00:00:00"; 27  pd.put("lastLoginEnd", lastLoginEnd); 28  } 29  // 检索条件=== 30 31 Map
dataMap = new HashMap
(); 32 List
titles = new ArrayList
(); 33 34 titles.add("用户名"); // 1 35 titles.add("编号"); // 2 36 titles.add("姓名"); // 3 37 titles.add("职位"); // 4 38 titles.add("手机"); // 5 39 titles.add("邮箱"); // 6 40 titles.add("最近登录"); // 7 41 titles.add("上次登录IP"); // 8 42 43 dataMap.put("titles", titles); 44 45 List
userList = userService.listAllUser(pd); 46 List
varList = new ArrayList
(); 47 for (int i = 0; i < userList.size(); i++) { 48 PageData vpd = new PageData(); 49 vpd.put("var1", userList.get(i).getString("USERNAME")); // 1 50 vpd.put("var2", userList.get(i).getString("NUMBER")); // 2 51 vpd.put("var3", userList.get(i).getString("NAME")); // 3 52 vpd.put("var4", userList.get(i).getString("ROLE_NAME")); // 4 53 vpd.put("var5", userList.get(i).getString("PHONE")); // 5 54 vpd.put("var6", userList.get(i).getString("EMAIL")); // 6 55 vpd.put("var7", userList.get(i).getString("LAST_LOGIN")); // 7 56 vpd.put("var8", userList.get(i).getString("IP")); // 8 57 varList.add(vpd); 58 } 59 60 dataMap.put("varList", varList); 61 62 ObjectExcelView erv = new ObjectExcelView(); // 执行excel操作 63 64 mv = new ModelAndView(erv, dataMap); 65 } catch (Exception e) { 66 logger.error(e.toString(), e); 67 } 68 return mv; 69 }

 

返回视图类代码: 

1 package com.fh.util; 2  3 import java.util.Date; 4 import java.util.List; 5 import java.util.Map; 6  7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 import org.apache.poi.hssf.usermodel.HSSFCell; 11 import org.apache.poi.hssf.usermodel.HSSFCellStyle; 12 import org.apache.poi.hssf.usermodel.HSSFFont; 13 import org.apache.poi.hssf.usermodel.HSSFSheet; 14 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 15 import org.springframework.web.servlet.view.document.AbstractExcelView; 16 17 18 /** 19  * 导入到EXCEL 类名称:ObjectExcelView.java 20  * @author link 21  * 22  */ 23 public class ObjectExcelView extends AbstractExcelView { 24 25  @Override 26 protected void buildExcelDocument(Map
model, HSSFWorkbook workbook, HttpServletRequest request, 27 HttpServletResponse response) throws Exception { 28 // TODO Auto-generated method stub 29 Date date = new Date(); 30 String filename = Tools.date2Str(date, "yyyyMMddHHmmss"); 31 HSSFSheet sheet; 32 HSSFCell cell; 33 response.setContentType("application/octet-stream"); 34 response.setHeader("Content-Disposition", "attachment;filename=" + filename + ".xls"); 35 sheet = workbook.createSheet("sheet1"); 36 37 List
titles = (List
) model.get("titles"); 38 int len = titles.size(); 39 HSSFCellStyle headerStyle = workbook.createCellStyle(); // 标题样式 40 headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); 41 headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); 42 HSSFFont headerFont = workbook.createFont(); // 标题字体 43 headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 44 headerFont.setFontHeightInPoints((short) 11); 45 headerStyle.setFont(headerFont); 46 short width = 20, height = 25 * 20; 47 sheet.setDefaultColumnWidth(width); 48 for (int i = 0; i < len; i++) { // 设置标题 49 String title = titles.get(i); 50 cell = getCell(sheet, 0, i); 51 cell.setCellStyle(headerStyle); 52 setText(cell, title); 53 } 54 sheet.getRow(0).setHeight(height); 55 56 HSSFCellStyle contentStyle = workbook.createCellStyle(); // 内容样式 57 contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); 58 List
varList = (List
) model.get("varList"); 59 int varCount = varList.size(); 60 for (int i = 0; i < varCount; i++) { 61 PageData vpd = varList.get(i); 62 for (int j = 0; j < len; j++) { 63 String varstr = vpd.getString("var" + (j + 1)) != null ? vpd.getString("var" + (j + 1)) : ""; 64 cell = getCell(sheet, i + 1, j); 65 cell.setCellStyle(contentStyle); 66 setText(cell, varstr); 67 } 68 } 69 } 70 }

 

文件上传

springmvc配置文件:

1 
2
8 9
10
11
12 13
14
15 16
17
18
19
20
21 22
23
24
25
26
27
28
29 30
31
33
34
35 36 37
38
39 40
41
42
43
104857600
44
45
46
4096
47
48
49
utf-8
50
51
52

 

jsp代码:

1     
2
3
4 5
6
7
8
9
14
15
10 导入11 取消12 下载模版13
16
17
18

 

 java代码:

1     /** 2      * 从EXCEL导入到数据库 3      */ 4     @RequestMapping(value = "/readExcel") 5     public ModelAndView readExcel(@RequestParam(value = "excel", required = false) MultipartFile file) 6             throws Exception { 7         ModelAndView mv = this.getModelAndView(); 8         PageData pd = new PageData(); 9 10         if (null != file && !file.isEmpty()) {11             String filePath = PathUtil.getClasspath() + Const.FILEPATHFILE; // 文件上传路径12             String fileName = FileUpload.fileUp(file, filePath, "userexcel"); // 执行上传13 14             List
listPd = (List) ObjectExcelRead.readExcel(filePath, fileName, 2, 0, 0); // 执行读EXCEL操作,读出的数据导入List15 // 2:从第3行开始;0:从第A列开始;0:第0个sheet16 17 /* 存入数据库操作 */18 pd.put("RIGHTS", ""); // 权限19 pd.put("LAST_LOGIN", ""); // 最后登录时间20 pd.put("IP", ""); // IP21 pd.put("STATUS", "0"); // 状态22 pd.put("SKIN", "default"); // 默认皮肤23 24 List
roleList = roleService.listAllERRoles(); // 列出所有二级角色25 26 pd.put("ROLE_ID", roleList.get(0).getROLE_ID()); // 设置角色ID为随便第一个27 /**28 * var0 :编号 var1 :姓名 var2 :手机 var3 :邮箱 var4 :备注29 */30 for (int i = 0; i < listPd.size(); i++) {31 pd.put("USER_ID", this.get32UUID()); // ID32 pd.put("NAME", listPd.get(i).getString("var1")); // 姓名33 34 String USERNAME = GetPinyin.getPingYin(listPd.get(i).getString("var1")); // 根据姓名汉字生成全拼35 pd.put("USERNAME", USERNAME);36 if (userService.findByUId(pd) != null) { // 判断用户名是否重复37 USERNAME = GetPinyin.getPingYin(listPd.get(i).getString("var1")) + Tools.getRandomNum();38 pd.put("USERNAME", USERNAME);39 }40 pd.put("BZ", listPd.get(i).getString("var4")); // 备注41 if (Tools.checkEmail(listPd.get(i).getString("var3"))) { // 邮箱格式不对就跳过42 pd.put("EMAIL", listPd.get(i).getString("var3"));43 if (userService.findByUE(pd) != null) { // 邮箱已存在就跳过44 continue;45 }46 } else {47 continue;48 }49 50 pd.put("NUMBER", listPd.get(i).getString("var0")); // 编号已存在就跳过51 pd.put("PHONE", listPd.get(i).getString("var2")); // 手机号52 53 pd.put("PASSWORD", new SimpleHash("SHA-1", USERNAME, "123").toString()); // 默认密码12354 if (userService.findByUN(pd) != null) {55 continue;56 }57 userService.saveU(pd);58 }59 /* 存入数据库操作*/60 61 mv.addObject("msg", "success");62 }63 64 mv.setViewName("save_result");65 return mv;66 }

 

转载于:https://www.cnblogs.com/link1988/p/5472857.html

你可能感兴趣的文章
spark-sql访问hive的问题记录
查看>>
Oracle Cursor的使用
查看>>
SQL Server 2008 (R2) 单机版安装的先决条件
查看>>
js setTimeout 与 setInterval 以及 for 循环 刷新UI
查看>>
Samsung_tiny4412(驱动笔记07)----spinlock,semaphore,atomic,mutex,completion,interrupt
查看>>
substring 在C#,Javascript,SQL 中index开始值
查看>>
抽象工厂模式
查看>>
Android SDK镜像的介绍使用【转发】
查看>>
apt-get方式安装lnmp环境
查看>>
ubuntu 安装 qt等软件
查看>>
js模态窗口
查看>>
LayoutInflater的infalte()
查看>>
TCP粘包, UDP丢包, nagle算法
查看>>
POJ 3280 Cheapest Palindrome (DP)
查看>>
投递外刊引用自己的文章该注意什么
查看>>
文本 To 音频
查看>>
UVA 644 Immediate Decodability (字符处理)
查看>>
项目总结—jQuery EasyUI- DataGrid使用
查看>>
使用智能移动设备访问Ossim制
查看>>
39. Volume Rendering Techniques
查看>>