Java使用Hutool实现读取Excel数据并存入数据库中

java导入Excel表格数据

本文可参考:https://www.hutool.cn/docs/#/poi/Excel读取-ExcelReader

一,引入依赖

	<!-- 导入Excel,版本要兼容,不然报错的 -->
	<dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi-ooxml</artifactId>
         <version>4.1.2</version>
     </dependency>
     <dependency>
         <groupId>cn.hutool</groupId>
         <artifactId>hutool-all</artifactId>
         <version>4.1.2</version>
     </dependency>

二,实体类
创建实体类并生成get set方法

	private Integer id;  //id
	private String department; //部门名称
	private String daydate; //日期
	private Integer dailytarget; //日目标产量
	private String createname; //创建人
	private Date createdate; //创建时间
	private String updatename;  //修改人
	private Date updatedate; //修改时间

三,XML

    <insert id="insertDailyTarget" parameterType="SystemManage.Target.entity.DailyTarget">
        insert into dailytarget (
        department,
        daydate,
        dailytarget,
        createname,
        createdate
        )
        values
        <foreach collection="recordList" item="item" separator=",">
            (
            #{item.department},
            #{item.daydate},
            #{item.dailytarget},
            #{createname},
            getdate()
            )
        </foreach>
    </insert>

四,Dao

@Component
public interface DailyTargetDao {

    /**
     * 日目标批量导入
     * @param recordList
     * @return
     */
    public Integer insertDailyTarget(@Param("recordList") List<DailyTarget> recordList,@Param("createname") String createname);
}

五,Service

@Service
public class DailyTargetService {

    @Autowired
    private DailyTargetDao dailyTargetDao;

    /**
     * 日目标批量导入
     * @param recordList
     * @return
     */
    public Integer insertDailyTarget(List<DailyTarget> recordList,String createname){
        return dailyTargetDao.insertDailyTarget(recordList,createname);
    }
}

六,控制层

 	@ResponseBody
    @RequestMapping(value = "/excelImport")
    public Integer importExcel(@RequestParam("file") MultipartFile file, HttpSession session){
        int count = 0;
        if (file.isEmpty()) {
            System.out.println( "文件为空!");
            return count;
        }
        // 获取上传文件输入流
        InputStream inputStream = null;
        try {
            inputStream = file.getInputStream();
        } catch (Exception e) {
            //return ResponseData.fail(ResponseCodeEnum.ERROR_PARAM_INVALID);
            e.printStackTrace();
        }
        //调用用 hutool 方法读取数据 默认调用第一个sheet
        ExcelReader excelReader = ExcelUtil.getReader(inputStream);
        //execl标题与Bean字段名对应
        excelReader.addHeaderAlias("部门名称","department");
        excelReader.addHeaderAlias("日期","daydate");
        excelReader.addHeaderAlias("日目标产量","dailytarget");
        //读取为Bean列表,Bean中的字段名为标题,字段值为标题对应的单元格值。
        List<DailyTarget> recordList = excelReader.readAll(DailyTarget.class);

        if(recordList.size() > 0){
            count = dailyTargetService.insertDailyTarget(recordList,(String)session.getAttribute("name"));
        }
        return count;
    }

七,数据库结构

create table dailytarget(
    id int identity(1,1) not null,
	department varchar(30),
	daydate varchar(30) not null,
	dailytarget int not null,
	createname varchar(30),
	createdate datetime,
	updatename varchar(30),
	updatedate datetime
)

八,Excel表格数据
在这里插入图片描述
九,运行结果
在这里插入图片描述

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值