小编通过ssm框架来实现往数据库中导入excel表格遇到了好多问题,在此特意整理出来,以供大家参考,喜欢的可以点一下关注。
错误1:在SpringMVC中没有配置MultiparResolver
解决方法:在spring3mvc-servlet.xml中配置MultiparResolver
<!-- 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>
错误2:缺少jar包
解决方法:查看自己的项目中是否有commons-fileupload-1.3.3.jar、commons-io-2.5.jar、jxl-2.6.jar(核心jar包就不说了)
错误3:未找到上传的文件
解决方法:这是因为文件没有传过去,在这里小编是通过提价form表单的形式传的文件,发送ajax不知如何向后台传文件
问题4:
解决方法:这是因为时间格式的问题,小编的xls中时间那一列有空值,小编刚开始没有判断。下面是时间格式的处理
// 时间的格式转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
// 时间的转换
if (map.get(16) != "") {
Date birth = sdf.parse(map.get(16));
vo.setBirth(new SimpleDateFormat("yyyy-MM-dd").format(birth));
} else {
//如果不给于空值,数据库会默认当前时间
vo.setBirth("");
}
错误5:发现sql语句报错
解决方法:发现在提取excel表格中空值,在这里小编捣鼓了半个小时才搞明白,还是代码不够严谨。一般报这个错是在传值和sql语句中导致的错误。
想要了解如何导入ecxel,请看ssm往mysql中导入excel表格