废话不多说,直接上代码
1.pom.xml导入依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<!--xlsx(07)-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<!-- 其它 -->
<!-- 1. 文件上传 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!-- 2. io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
2.配置application.properties
spring.servlet.multipart.maxFileSize=10240MB
spring.servlet.multipart.maxRequestSize=10240MB
# 文件上传自定义配置
# 5MB = 5242880 byte
# 10GB = 10737418240 byte
upload.maxFaceImageSize=5242880
upload.maxVideoSize=10737418240
3.实体类(根据你自己的需求来定义)
package com.example.dnjdzy.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
/**
* 被监督单位对象 bjddw
* @date 2022-09-19
*/
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Bjddw
{
private static final long serialVersionUID = 1L;
/** 被监督单位编号 */
private Integer id;
/** 上级部门 */
private String sjbm;
/** 部门名称 */
private String bmmc;
/** 被监督单位类型 */
private Integer bjddwlx;
/** 层级类型 */
private String cjlx;
/** 联系室组 */
private String lxsz;
/** 排序 */
private Integer px;
/** 部门id */
private Integer bmId;
/** 父id */
private Integer parentId;
/** 创建时间 */
private Date createTime;
/** 子List */
private List<Bjddw> children;
}
4.controller层(根据自己需求用HSSF或者XSSF)
/**
* 批量导入按钮
* @throws IOException
*/
@RequestMapping("/import")
@ResponseBody
public void getMessage()throws IOException {
// 1.通过流读取Excel文件
FileInputStream inputStream = new FileInputStream("E:\\公司需求文档\\批量导入.xls");
// 2.通过poi解析流 HSSFWorkbook 处理流得到的对象中 就封装了Excel文件所有的数据
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
// 3.从文件中获取表对象 getSheetAt通过下标获取
// HSSFSheet sheet = workbook.getSheetAt(0); 不支持用HSSF 所以换成了XSSF
XSSFSheet sheet = workbook.getSheetAt(0);
// 4.从表中获取到行数据 从第二行开始 到 最后一行 getLastRowNum() 获取最后一行的下标
int lastRowNum = sheet.getLastRowNum();
for (int i = 1; i <= lastRowNum; i++) {
//通过下标获取行
XSSFRow row = sheet.getRow(i);
// 从行中获取数据
/**
* getNumericCellValue() 获取数字
* getStringCellValue 获取String
*/
String sjbm = row.getCell(0).getStringCellValue();
String bmmc = row.getCell(1).getStringCellValue();
double bjddwlx = row.getCell(2).getNumericCellValue();
String cjlx = row.getCell(3).getStringCellValue();
String lxsz = row.getCell(4).getStringCellValue();
double px = row.getCell(5).getNumericCellValue();
double bmId = row.getCell(6).getNumericCellValue();
double parentId = row.getCell(7).getNumericCellValue();
Bjddw bjddw = new Bjddw();
bjddw.setSjbm(sjbm);
bjddw.setBmmc(bmmc);
bjddw.setBjddwlx((int) bjddwlx);
bjddw.setCjlx(cjlx);
bjddw.setLxsz(lxsz);
bjddw.setPx((int) px);
bjddw.setBmId((int) bmId);
bjddw.setParentId((int) parentId);
bjddw.setCreateTime(new Date());
bjddwService.insertBjddw(bjddw);
}
}
5.Service接口
/**
* 新增被监督单位
*
* @param bjddw 被监督单位
* @return 结果
*/
public String insertBjddw(Bjddw bjddw);
6.ServiceImpl实现类
/**
* 新增被监督单位
*
* @param bjddw 被监督单位
* @return 结果
*/
@Override
public String insertBjddw(Bjddw bjddw)
{
bjddwMapper.insertBjddw(bjddw);
return "新增成功";
}
7.Mapper层
/**
* 新增被监督单位
*
* @param bjddw 被监督单位
* @return 结果
*/
public int insertBjddw(Bjddw bjddw);
8.mapper.xml文件中写sql语句
<insert id="insertBjddw" useGeneratedKeys="true" keyProperty="id">
insert into bjddw
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="sjbm != null">sjbm,</if>
<if test="bmmc != null">bmmc,</if>
<if test="bjddwlx != null">bjddwlx,</if>
<if test="cjlx != null">cjlx,</if>
<if test="lxsz != null">lxsz,</if>
<if test="px != null">px,</if>
<if test="createTime != null">create_time,</if>
<if test="bmId != null">bm_id,</if>
<if test="parentId != null">parent_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="sjbm != null">#{sjbm},</if>
<if test="bmmc != null">#{bmmc},</if>
<if test="bjddwlx != null">#{bjddwlx},</if>
<if test="cjlx != null">#{cjlx},</if>
<if test="lxsz != null">#{lxsz},</if>
<if test="px != null">#{px},</if>
<if test="createTime != null">#{createTime},</if>
<if test="bmId != null">#{bmId},</if>
<if test="parentId != null">#{parentId},</if>
</trim>
</insert>
9.设置Excel文件
10.测试是否可以导入
11.查看数据库是否存入数据
成功存入到了数据库中