zoukankan      html  css  js  c++  java
  • java后端导入excel将数据写入数据库

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

     1 @RequestMapping("/importExcel.do")
     2     public void import2(String xlsPath) throws IOException, BiffException {
     3 
     4         // 导入已存在的Excel文件,获得只读的工作薄对象
     5         FileInputStream fis = new FileInputStream(xlsPath);
     6         Workbook wk = Workbook.getWorkbook(fis);
     7         // 获取第一张Sheet表
     8         Sheet sheet = wk.getSheet(0);
     9         // 获取总行数
    10         int rowNum = sheet.getRows();
    11         System.out.println("插入总行数:"+rowNum);
    12         // 从数据行开始迭代每一行
    13         for (int i = 0; i < rowNum; i++) {
    14             //先判断插入的数据是否和数据库的数据重复
    15             if(userService.findUser(sheet.getCell(0, i).getContents())>0) {
    16                 continue;
    17             }
    18             User u = new User();
    19             // getCell(column,row),表示取得指定列指定行的单元格(Cell)
    20             // getContents()获取单元格的内容,返回字符串数据。适用于字符型数据的单元格
    21             // 使用实体类封装单元格数据
    22             u.setName(sheet.getCell(0, i).getContents());
    23             u.setAge(sheet.getCell(1, i).getContents());
    24             u.setNickName(sheet.getCell(2, i).getContents());
    25             userService.saveUser(u);
    26             System.out.println("成功插入:"+sheet.getCell(0, i).getContents());
    27             
    28             
    29             
    30             /*// 判断单元格的类型,单元格主要类型LABEL、NUMBER、DATE
    31             if (sheet.getCell(2, i).getType == CellType.NUMBER) {
    32 
    33                 // 转化为数值型单元格
    34                 NumberCell numCell = (NumberCell) sheet.getCell(2, i);
    35                 // NumberCell的getValue()方法取得单元格的数值型数据
    36                 info.setRscore(numCell.getValue());
    37 
    38             }
    39             if (sheet.getCell(3, i).getType == CellType.NUMBER) {
    40                 NumberCell numCell = (NumberCell) sheet.getCell(3, i);
    41                 info.setRscore(numCell.getValue);
    42             }
    43 
    44             if (sheet.getCell(4, i).getType == CellType.DATE) {
    45                 DateCell dateCell = (DateCell) sheet.getCell(4, i);
    46                 // DateCell的getDate()方法取得单元格的日期型数据
    47                 info.setDate(dateCell.getDate());
    48             }*/
    49         }
    50         fis.close();
    51         wk.close();
    52     }

    注解都比较详细了

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

    <form>
            <input type="file" id="fileName" name="xlsPath" /> <input
                type="button" id="btn" value="提交">
        </form>
     1 $("#btn").click(function() {
     2             var xlsPath = document.getElementById("fileName").value;
     3             /* var path=getPath(xlsPath);
     4             alert(path); */
     5             $.ajax({
     6                 "url" : "${pageContext.request.contextPath}/importExcel.do",
     7                 "type" : "GET",
     8                 "data" : "xlsPath=" + xlsPath,
     9                 "dataType" : "json",
    10                 "success" : function(res) {
    11                     if (res.state == 1) {
    12                         alert(message);
    13                     } else {
    14                         alert(message);
    15                     }
    16                 }
    17             });
    18         });

    可以直接用

  • 相关阅读:
    Maven安装与环境配置(Windows)
    Java配置----JDK开发环境搭建及环境变量配置
    js中的join(),reverse()与 split()函数用法解析
    Vue2.0 搭建Vue脚手架(vue-cli)
    vue: WebStorm设置快速编译运行
    优秀博客推荐
    Springboot读取自定义配置文件节点
    vue——报错:Cannot read property '__ob__' of undefined
    css——内容溢出显示垂直滚动条,内容不超出就不显示滚动条
    js——实现多选
  • 原文地址:https://www.cnblogs.com/zuoxh/p/9766977.html
Copyright © 2011-2022 走看看