• java实现导入excel功能


    maven依赖

     1         <!--添加POI的依赖用于Excel的操作-->
     2         <dependency>
     3             <groupId>org.apache.poi</groupId>
     4             <artifactId>poi</artifactId>
     5             <version>4.0.0</version>
     6         </dependency>
     7         <dependency>
     8             <groupId>org.apache.poi</groupId>
     9             <artifactId>poi-ooxml</artifactId>
    10             <version>4.0.0</version>
    11         </dependency>

    前端

    <html>
    <head>
        <title>导入excel</title>
    </head>
    <body>
    <form enctype="multipart/form-data" method="post" action="${pageContext.request.contextPath}/other/excel/importExcel">
        选择Excel表格:
        <input type="file" name="file"/>
        <br/>
        <input type="submit" value="上传"/>
    </form>
    </body>
    </html>

    实体类(get set 自己补充)

    1 public class Excel {
    2     private int id;
    3 
    4     private String name;
    5 
    6     private int age;
    7 
    8     private String createDate;
    9 }

    后端

     1 package com.spring.other.controller;
     2 
     3 import com.spring.other.entity.Excel;
     4 import org.springframework.stereotype.Controller;
     5 import org.springframework.web.bind.annotation.RequestMapping;
     6 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
     7 import org.apache.poi.hssf.usermodel.HSSFRow;
     8 import org.apache.poi.hssf.usermodel.HSSFSheet;
     9 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    10 import org.springframework.stereotype.Controller;
    11 import org.springframework.web.bind.annotation.*;
    12 import org.springframework.web.multipart.MultipartFile;
    13 
    14 import javax.servlet.http.HttpServletRequest;
    15 import java.text.SimpleDateFormat;
    16 import java.util.ArrayList;
    17 import java.util.List;
    18 
    19 /**
    20  * @author liuwenlong
    21  * @create 2022-03-17 19:20:49
    22  */
    23 @SuppressWarnings("all")
    24 @Controller
    25 @RequestMapping("/other/excel")
    26 public class ExcelController {
    27 
    28     @RequestMapping("importExcelView")
    29     public String importExcelView() {
    30         return "other/importExcel";
    31     }
    32 
    33     @RequestMapping("importExcel")
    34     public String importExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
    35         String contentType = file.getContentType();
    36         String fileName = file.getOriginalFilename();
    37         if (file.isEmpty()) {
    38             return "文件为空!";
    39         }
    40         try {
    41             //根据路径获取这个操作excel的实例
    42             HSSFWorkbook wb = new HSSFWorkbook(file.getInputStream());
    43             //根据页面index 获取sheet页
    44             HSSFSheet sheet = wb.getSheetAt(0);
    45             HSSFRow row = null;
    46             //循环sesheet页中数据从第二行开始,第一行是标题
    47 
    48             List<Excel> list = new ArrayList<>();
    49             for (int i = 1; i < sheet.getPhysicalNumberOfRows()-1; i++) {
    50                 //获取每一行数据
    51                 row = sheet.getRow(i);
    52                 Excel excel = new Excel();
    53                 excel.setId((int) row.getCell(0).toString());
    54                 excel.setName(row.getCell(1).toString());
    55                 excel.setAge((int) row.getCell(2).toString());
    56                 SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
    57                 excel.setCreateDate(df.format(df.parse(df.format(HSSFDateUtil.getJavaDate(row.getCell(3).getNumericCellValue())))));
    58                 System.out.println(excel);
    59                 list.add(excel);
    60             }
    61 
    62             //循环展示导入的数据,实际应用中应该校验并存入数据库
    63             for (Excel excel : list) {
    64                 System.out.println("ID:"+excel.getId()+" "+"姓名:"+excel.getName()+" "+"年龄:"+excel.getAge()+" "+"日期"+excel.getCreateDate());
    65             }
    66         } catch (Exception e) {
    67             e.printStackTrace();
    68         }
    69         return "导入成功!";
    70     }
    71 
    72 }

    Excel

    前端操作,选择excel文件上传

    搞定

  • 相关阅读:
    MVC4.0系统开发新手历程1
    hdu1205(类似 分布垃圾数列)
    python manage.py startapp app 时候报错No module named _sqlite3
    delphi 文件夹权限设置(执行一个小脚本的笨办法)
    FreeBSD 10安装KDE桌面环境简介(亲测bsdconfig命令有效)
    Qt的目录依赖问题----怎样生成一个绿色的Qt软件包
    Qt5位置相关函数异同详解(附源码)
    Qt 设置背景图片3种方法(三种方法:QPalette调色板,paintEvent,QSS)
    简单实现android和wp聊天
    进程间通讯之mmap文件共享
  • 原文地址:https://www.cnblogs.com/lwl80/p/16018973.html
Copyright © 2020-2023  润新知