ssm往mysql中导入excel表格

    步骤1:导入所需要的jar包

主要所用到jar有:commons-fileupload-1.3.3.jar、commons-io-2.5.jar、jxl-2.6.jar(核心的ssm框架jar包就不说了)


    步骤2: 配置SpringMVC

<!-- SpringMVC文件上传 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--defaultEncoding:请求的编码格式必须和用户JSP的编码一致,以便正确读取表单中的内容。 
            uploadTempDir:文件上传过程中的临时目录,上传完成后,临时文件会自动删除 
            maxUploadSize:设置文件上传大小上限(单位为字节) -->
        <property name="defaultEncoding" value="UTF-8" />
        <property name="maxUploadSize" value="102400000" />
        <!--uploadTempDir可以不做设置,有默认的路径,上传完毕会临时文件会自动被清理掉 
        <property name="uploadTempDir" value="upload/temp"></property> -->
    </bean> 

    步骤3:前台代码


  
  
<form action="后台连接" method="post" enctype="multipart/form-data"> 请选择文件:<input type="file" class="btn btn-default"  name="file"><br/>     <input type="submit" class="btn btn-default" value="提交"> </form> 

    步骤4:后台代码

	@RequestMapping("upload.it")
	public void upload(HttpServletRequest request,HttpServletResponse response, MultipartFile file)throws IOException, ParseException {
		// 时间的格式转换
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
		// 创建实体对象  需要你创建实体
		FlowInPopsVo vo = new FlowInPopsVo();
		//记录数
		int nos = 0;
		try {
			// 也可以用request获取上传文件
			// MultipartFile fileFile = request.getFile("file"); //这里是页面的name属性
			// 判断是否有输入流
			if (file.getSize()!= 0) {
				// 转换成输入流
				InputStream is = file.getInputStream();
				// 得到excel
				Workbook workbook = Workbook.getWorkbook(is);
				// 得到sheet
				Sheet sheet = workbook.getSheet(0);
				// 得到列数
				int colsNum = sheet.getColumns();
				// 得到行数
				int rowsNum = sheet.getRows();
				// 单元格
				Cell cell;
				// 创建map集合
				Map<Integer, String> map = new HashMap<Integer, String>();
				for (int i = 1; i < rowsNum; i++) {// 我的excel第一行是标题,所以 i从1开始
					for (int j = 0; j < colsNum; j++) {
						cell = sheet.getCell(j, i);// 注意:第一个参数是列.第二个参数是行
						map.put(j, cell.getContents()); // 存储

					}
					// 从map里取出来的value存到实体中
					vo.setId(map.get(0));
					vo.setName(map.get(1));
					// 时间的转换
					if (map.get(5) != "") {
						Date birth = sdf.parse(map.get(2));
						vo.setBirth(new SimpleDateFormat("yyyy-MM-dd")
								.format(birth));
					} else {
						vo.setBirth("");
					}
					// 判断是否为空
					if (vo.getId() != "" && !" ".equals(vo.getId())) {
						// 保存实体  需要你自己创建业务层
						nos = flowInPopsService.addinpop(vo);
					}

				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		} catch (BiffException e) {
			e.printStackTrace();
		}
		response.setContentType("text/html; charset=UTF-8");
		response.setHeader("Cache-Control", "no-cache"); // 在火狐下不设置返回类型的话,默认返回的是text/xml(xmldomcument)对象了。无法进行1==1比较,登不进系统。
		PrintWriter out = response.getWriter();
		if (nos > 0) {
			System.out.println("添加成功");
			out.print("1");
		} else {
			System.out.println("失败");
			out.print("0");
		}
		out.flush();
		out.close();
		
	}

ps:如果遇到错误请查看 ssm往mysql中导入excel出现的错误

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值