博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Excel文档上传
阅读量:6512 次
发布时间:2019-06-24

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

两个月没写东西了,今天拉出来操练操练。写一个Excel文档数据上传保存数据库。

一:准备工作

 1、jar包:当时使用的Maven,自己就加入jar包了

net.sourceforge.jexcelapi
jxl
2.6.10

2、现在就可以开始写了

@RequestMapping(value = "/importfile")	public @ResponseBody Map importFile(HttpServletRequest request,HttpServletResponse response) throws Exception

  返回map数据

          String interfaceCode = "";		resultMap = new HashMap
(); User user = null; String userName = null; //用户名 String realName = null; //真实姓名 String cellphone = null; //手机号 String deptName = null; //部门名称 String remark = null; //备注 int count = 0; //当前数据库正式员工数量 int total = 0; //总数:当前员工数量加上导入数量 Workbook book = null; File localFile = null;
定义变量
//授权正式员工数量		int presetNumber = Integer.parseInt(SysConfigUtil.getParamValue("accredit.official.employees"));

  从配置文件中获取授权信息。

        CommonsMultipartResolver multipartResolver  = new CommonsMultipartResolver(request.getSession().getServletContext());			if(multipartResolver.isMultipart(request)){				MultipartHttpServletRequest  multiRequest = (MultipartHttpServletRequest)request;				Iterator
iter = multiRequest.getFileNames(); while(iter.hasNext()){ MultipartFile file = multiRequest.getFile((String)iter.next()); if(file == null){ continue; }

  SpringMVC自带的上传文件方法。

                        String fileName = file.getOriginalFilename();					String path = request.getServletContext().getRealPath("file/temp");					localFile = new File(path+"/"+fileName);					file.transferTo(localFile);                         book = Workbook.getWorkbook(localFile);//获取文件

  这边是获取文件

                        Sheet sheet = book.getSheet(0); //获得工作表对象					int rows = sheet.getRows();		//行					List
successList = new ArrayList
(rows); count = userService.countFindByuserType(2);//获取正式员工数量 total = rows+count;

  创建工作表

if(total
0 ; i --){ user = successList.get(i); userService.insert(user); roleService.authorize(user.getId(), user.getUserType()); } resultMap.put("result", "OK"); resultMap.put("message", "");

 

localFile.delete();

  删除临时文件,这个最好放在finally里

循环遍历保存数据,刚开始做得时候是正确的信息保存,错误信息返回给用户,后来发现数据量大,就改为出现出错就返回给用户,改好之后再上传

 

转载于:https://www.cnblogs.com/kangyanxiang/p/4757364.html

你可能感兴趣的文章
ASCII码
查看>>
java常用四种排序源代码
查看>>
win7 下硬盘安装Redhat7
查看>>
Redis 分布式锁的正确实现方式
查看>>
mysqldump 备份命令使用中的一些经验总结
查看>>
Linux下MySql安装配置方法总结
查看>>
本IT博客用于域名投资、互联网、资源下载等相关干货收藏和学习
查看>>
ArrayList底层实现
查看>>
【转载】Java程序设计入门 (二)
查看>>
which、whereis、location和fand的区别
查看>>
单词最近距离
查看>>
程序猿知道英语词汇
查看>>
数据存储(两)--SAX发动机XML记忆(附Demo)
查看>>
ECSHOP添加购物车加图片飞入效果
查看>>
谈谈SQL 语句的优化技术
查看>>
ecshop如何判断缓存文件是否能更新
查看>>
javascript于boolean类型转换,运营商&&和|| 返回值
查看>>
Socket tips: UDP Echo service - Client code
查看>>
Loading half a billion rows into MySQL---转载
查看>>
iOS边练边学--通知机制和键盘处理小练习
查看>>