springMVC从上传的Excel文件中读取数据并写入数据库

本文介绍如何使用SpringMVC处理Excel文件上传,解析数据,并将正确格式的手机号码数据存入数据库。内容包括在XML配置文件中设定上传文件大小,创建HTML页面,编写Java控制层和服务层代码,利用Apache POI处理不同版本Excel,并在数据库中进行数据持久化操作。
摘要由CSDN通过智能技术生成

页面效果:

一、编辑xls

数据方面我用了三条,两条手机号码正确的数据,一条手机号码错误的数据,结果应该是插入前面两条。

这里有个问题就是,手机在excel解析的时候会变成科学记数法的数值,如果保存的格式是String类型,就会出现解析报错,所以需要把手机的单元格设置成文本格式,设置单元格格式是不行的,具体的方式例如wps是进入数据-->分列中去做设置。

二、在spring的xml文件设置上传文件大小

<!-- 上传文件拦截,设置最大上传文件大小   10M=10*1024*1024(B)=10485760 bytes -->  
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    <property name="maxUploadSize" value="10485760" />  
</bean>

三、html页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<meta http-equiv="pragma" content="no-cache" />
		<base target="_self" />
		<title>新增</title> 
        //还需要导入easyUI,这里省略了
		<script type="text/javascript">
			$(document).ready(function(){
			//添加页面初始化需要往控件设置的值
				if('${flag?if_exists}'!=''){
			  		if('${flag?if_exists}'=='success'){
			  			messageAlert('提示',"保存成功!","success");
			  			//window.returnValue=true;
			  			window.location.href = "需要跳转的下一个页面的地址";
			  		}else{
			   			messageAlert('提示',"保存失败!","error");
			 		}
			 	}
			});
			
			function doSave(){
				var t = $('#saveForm').form('validate'); 	
 				if(t){
					document.getElementById('saveForm').submit();
				}
			}
		</script>
	</head>
	<body>
		<div class="">
			<div class="">
				<form id="saveForm" action="action路径" method="post" enctype="multipart/form-data">
					<table class="">
					  	<tr>
					  		<td class="gray" >上传需要导入的excel文件:<label class="requiredFlag">*</label></td>
					 		<td colspan="3">
								<input type="file" name="file" id="templetpath" class="easyui-validatebox" required="true" accept=".csv, application/vnd.openxmlformats-officedo
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
poi解析excel功能参数说明 此项目是基于springMVC实现的,基本流程为从前台jsp页面使用Ajax文件上传导入excel文件(.xls(97-03)/.xlsx(07以后)),传到后台controller调用相应工具类解析后返回指定参数做后续处理. 1. POIUtil.java工具类 解析通过MutilpartFile导入Excel并解析里面数据,先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,通过workbook.getNumberOfSheets()获取工作簿数量,遍历工作簿,sheet.getLastRowNum()获取最大行数,将每行数据放入List list = new Array List(),并根据excel数据类型将器转换为字符串、数字、Boolean、公式、空值类型防止出现错误,最后返回一个list. 2. ExcelUtil.java工具类 解析通过MutilpartFile导入Excel并解析里面数据,先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,采用Apache的POI的API来操作Excel,读取内容后保存到List,再将List转Json(使用Linked,增删快,与Excel表顺序保持一致),Sheet表1————>List1<Map> 步骤1:根据Excel版本类型创建对于的Workbook以及CellSytle 步骤2:遍历每一个表的每一行的每一列,这里做了些小改动,因为后续可能解析过后可能会保存入数据库,这里为第一行数据添加一个自定义表头 String[] p = new String[]{"name","age","sex","tel","address","e-mail","phone"}; 遍历的列数量以p的length为准 步骤3:一个sheet表就是一个Json,多表就多Json,对应一个 List 一个sheet表的一行数据就是一个 Map 一行的一列,就把当前列头为key,列值为value存到该列的Map Map 一个线性Hash Map,以Excel的sheet表顺序,并以sheet表明作为key,sheet表转换Json后的字符串作为value 最后返回一个LinkedHashMap 3. ExcelToJsonPoi.java工具类 这个与上面工具类类似,不过这个是解析本地excel文件不是使用的流,使用迭代遍历sheet工作簿与每行每列的值,将所有类型作为String类型处理返回一个json对象输出至控制台
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值