参考:https://www.cnblogs.com/hanfeihanfei/p/7079210.html

 @RequestMapping("/importExcel.do")
public void import2(String xlsPath) throws IOException, BiffException { // 导入已存在的Excel文件,获得只读的工作薄对象
FileInputStream fis = new FileInputStream(xlsPath);
Workbook wk = Workbook.getWorkbook(fis);
// 获取第一张Sheet表
Sheet sheet = wk.getSheet(0);
// 获取总行数
int rowNum = sheet.getRows();
System.out.println("插入总行数:"+rowNum);
// 从数据行开始迭代每一行
for (int i = 0; i < rowNum; i++) {
//先判断插入的数据是否和数据库的数据重复
if(userService.findUser(sheet.getCell(0, i).getContents())>0) {
continue;
}
User u = new User();
// getCell(column,row),表示取得指定列指定行的单元格(Cell)
// getContents()获取单元格的内容,返回字符串数据。适用于字符型数据的单元格
// 使用实体类封装单元格数据
u.setName(sheet.getCell(0, i).getContents());
u.setAge(sheet.getCell(1, i).getContents());
u.setNickName(sheet.getCell(2, i).getContents());
userService.saveUser(u);
System.out.println("成功插入:"+sheet.getCell(0, i).getContents()); /*// 判断单元格的类型,单元格主要类型LABEL、NUMBER、DATE
if (sheet.getCell(2, i).getType == CellType.NUMBER) { // 转化为数值型单元格
NumberCell numCell = (NumberCell) sheet.getCell(2, i);
// NumberCell的getValue()方法取得单元格的数值型数据
info.setRscore(numCell.getValue()); }
if (sheet.getCell(3, i).getType == CellType.NUMBER) {
NumberCell numCell = (NumberCell) sheet.getCell(3, i);
info.setRscore(numCell.getValue);
} if (sheet.getCell(4, i).getType == CellType.DATE) {
DateCell dateCell = (DateCell) sheet.getCell(4, i);
// DateCell的getDate()方法取得单元格的日期型数据
info.setDate(dateCell.getDate());
}*/
}
fis.close();
wk.close();
}

注解都比较详细了

前端代码(ie8和chrome前端获取的路径会出问题)

<form>
<input type="file" id="fileName" name="xlsPath" /> <input
type="button" id="btn" value="提交">
</form>
 $("#btn").click(function() {
var xlsPath = document.getElementById("fileName").value;
/* var path=getPath(xlsPath);
alert(path); */
$.ajax({
"url" : "${pageContext.request.contextPath}/importExcel.do",
"type" : "GET",
"data" : "xlsPath=" + xlsPath,
"dataType" : "json",
"success" : function(res) {
if (res.state == 1) {
alert(message);
} else {
alert(message);
}
}
});
});

可以直接用

java后端导入excel将数据写入数据库的更多相关文章

  1. springMVC(5)---导入excel文件数据到数据库

    springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...

  2. java后端导入excel模板和导入excel文件去读数据

    模板转载地址:https://www.cnblogs.com/zhangyangtao/p/9802948.html 直接上代码(我是基于ssm写的demo,导入文件目前只能读取.xls后缀的exce ...

  3. poi导入excel表格数据到数据库的时候,对出生日期的校验

    出生日期格式为8位数字的字符串 如:yyyyMMdd 规则:yyyy大于1900并小于当前时间,月.日 按日期规则校验 //解决读过来的字符串显示为科学计数法问题 BigDecimal bd = ne ...

  4. mysql 导入excel文件数据到数据库

    load data local infile 'C:/Users/Administrator/Documents/gaunai2.csv' into table newtable (c1,c2) fi ...

  5. 在java poi导入Excel通用工具类示例详解

    转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36   作者:daochuwenziyao   我要评论   这篇文章主要给大家介绍了关于在j ...

  6. java后端导出excel

    最近工作中需要导出excel.这次机智一点做个笔记,顺便写了一个比较通用的工具类.自然目前不能生成java实体类属性嵌套多次的这种没办法导出了,后续有需要的时候我再改改. 首先,java后端导出exc ...

  7. 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

      先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...

  8. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

  9. 图形数据写入数据库,Filletream

    图形数据写入数据库 用FileStream对象读模式打开图形文件 Dim 文件对象 As New FileStream(图形文件名, FileMode.Open, FileAccess.Read) 定 ...

随机推荐

  1. Devops 到底是什么?(转)

    出处:https://www.cnblogs.com/servicehot/p/6510199.html 过去一年以来,一批来自欧美的.不墨守陈规的系统管理员和开发人员一直在谈论一个新概念:DevOp ...

  2. bootstrap-glyph-customization

    http://www.runoob.com/try/demo_source/bootstrap-glyph-customization.htm http://fontawesome.io/icons/

  3. s4-6 二层交换

    为什么需要二层交换?  有很多LAN,如何将它们连接起来? 可用网桥(bridges )将它们连接起来.  网桥工作在DLL层,通过检查MAC地址做出转发帧的决策 不会检查网络层,所以,IPv ...

  4. 实战fortran77基础语法

    1.数组在主函数和子例行函数中传递 一个项目中有两个源代码文件: 代码: PROGRAM ARRAYZBL DOUBLE PRECISION A,B,C,D(:) INTEGER I DATA A,B ...

  5. IntelliJ IDEA 2017版 spring-boot2.0.4+mybatis+Redis处理高并发,穿透问题

    一.当采用reddis缓存的时候,如果同时,一万次访问,那么就会有10000次访问数据库所以就会对数据库造成巨大压力,这时候,就要用到线程 1.方法体上加锁(优点,防护住了并发锁,缺点降低了内存效率) ...

  6. 02:PostgreSQL Character Sets

    在利用postGIS导入shapefile文件到postgresql数据库的时候,老是提示字符串的问题,或者是乱码,试了好几种都不行,于是度娘之.... 使用默认的UTF8,提示信息是:建议使用LAT ...

  7. 关于在Silverlight中添加图片的问题

    在Silverlight中添加图片,目前支持的Image格式有jpg和png两种,如何在目录中添加,有些什么技巧呢? <StackPanel Background="White&quo ...

  8. 笔记:CSS hack的学习与了解…

    更新时间:2015.05.12 兼容范围: IE:6.0+,FireFox:2.0+,Opera 10.0+,Sarari 3.0+,Chrome 参考资料: 各游览器常用兼容标记一览表: 标记  I ...

  9. Mongoose轻松搞定MongoDB,不要回调!

    MEAN开发栈中使用MongoDB的时候,与之配对的ORM最好的选择就是Mongoose了.本文就和大家一起探讨一下如何使用Mongoose来实现MongoDB的增删改查. 为了能使文中的例子更加生动 ...

  10. day24(JAVAWEB上传与下载)

    javaWeb上传与下载 上传: 上传方式: jspSmartUpload   :应用在jsp上的文件上传与下载组件. FileUpload            :用用在jaava环境上的上传的功能 ...