POI导入Excel文件

使用POI技术将Excel文件导入数据库

1.导入jar包

1)创建Springboot项目选择所需的应用场景
创建项目
2)再根据所需导入的Excel的类型选择对应的POI jar包

        <!--操作Excel97-2003版本,以xls后缀结尾-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.0</version>
        </dependency>
        <!--操作Excel2007以上版本,以xlsx后缀结尾-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.0</version>
        </dependency>
2.配置application.yml文件

分别配置数据库连接配置和mybatis的映射配置
yml文件配置

3.创建导入目标表

创建目标表并创建所需序列
创表语句

4.创建实体类、mapper文件、mapping映射文件及service层

1)创建实体类(使用lombok包中的Data注解,可省略set、get方法)
pojo
2)书写mapper文件及mapper.xml文件
进行Excel导入应该是要对数据库进行插入操作,所以我们需要编写一个新增的方法
mapper文件
mapper文件
mapper.xml文件
mapper.xml文件
service层及serviceimpl
写完mapper及mapper.xml文件我们需要通过service层去调用

service
serviceimpl

5.最后编写controller控制层实现导入功能
package com.example.demo.controller;

import com.example.demo.pojo.Excel;
import com.example.demo.pojo.Student;
import com.example.demo.service.StudentService;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@RestController
public class StudentController {

    @Autowired
    private StudentService studentService;

    @RequestMapping("student")
    public void write() throws IOException {
        InputStream is = new FileInputStream("C:/Users/cts/Desktop/学生.xlsx");//通过InputStream读取需要导入的文件名
        XSSFWorkbook xss = new XSSFWorkbook(is);//xls后缀文件通过HSSFWorkbook创建工作簿,xlxs通过XSSFWorkbook创建工作簿
        XSSFSheet sheet = xss.getSheetAt(0);//获取Excel文件的sheet页,从0开始
//        HSSFWorkbook hss = new HSSFWorkbook(is);
//        HSSFSheet sheet = hss.getSheetAt(0);
        for (Row row : sheet) {//获取sheet页的行数
            if(row.getRowNum()==0){//跳过表头信息
                continue;
            }
            String name = row.getCell(0).getStringCellValue();//获取每一列的数据,getStringCellValue()用于获取string类型数据
            double age = row.getCell(1).getNumericCellValue();//getNumericCellValue()用于获取数字类型的数据,获取的类型为double
            String sex = row.getCell(2).getStringCellValue();
            Student student = new Student();
            student.setName(name);
            student.setAge((int)age);
            student.setSex(updateSex(sex));
            try {
                studentService.insertStudent(student);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    public static Integer updateSex(String sex){
        if(sex.equals("男")){
            return 0;
        }else{
            return 1;
        }
    }
}

6.测试

在浏览器中输入访问路径
test
运行成功后查询数据库,数据成功插入
数据

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值