jeasypoi导入excel,数字列导入失败解决办法

简介: jeasypoi导入excel,数字列导入失败解决办法

我的问题

类型匹配问题

java.lang.NumberFormatException: For input string: "439.0"
  at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
  at java.lang.Integer.parseInt(Integer.java:580)
  at java.lang.Integer.valueOf(Integer.java:766)

实体

public class StudentInfoEntity implements java.io.Serializable {
  /**入学成绩*/
  @Excel(name="入学成绩",width=15,type=4)
  private Integer admissionScore;
  /**英语成绩*/
  @Excel(name="英语成绩",width=15,type=4)
  private Integer englishScore;
}

excel数据

1.png

解决办法使用ExcelDataHandlerDefaultImpl

进行类型转换

package com.util;
import org.apache.commons.lang3.ArrayUtils;
import org.jeecgframework.poi.handler.impl.ExcelDataHandlerDefaultImpl;
import java.util.Map;
public class ExcelHandler extends ExcelDataHandlerDefaultImpl {
    @Override
    public Object importHandler(Object obj, String name, Object value) {
        if(ArrayUtils.contains( this.getNeedHandlerFields(),name)){
            Double d = Double.valueOf(value.toString());
            return d.intValue();
        }else{
            return super.importHandler(obj, name, value);
        }
    }
}

controller导入

 @RequestMapping(params = "importExcel", method = RequestMethod.POST)
    @ResponseBody
    public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
        AjaxJson j = new AjaxJson();
    Integer year = Integer.valueOf(request.getParameter("year"));
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
            MultipartFile file = entity.getValue();// 获取上传文件对象
            ImportParams params = new ImportParams();
      ExcelHandler excelHandler = new ExcelHandler();
      //设置要转换的字段
      excelHandler.setNeedHandlerFields(new String[] { "入学成绩","英语成绩" });
            params.setTitleRows(0);
            params.setHeadRows(1);
            params.setDataHanlder(excelHandler);
            params.setNeedSave(true);
            try {
                List<StudentInfoEntity> listJeecgDemoExcelEntitys = ExcelImportUtil.importExcel(file.getInputStream(),StudentInfoEntity.class,params);
                for (StudentInfoEntity studentInfoEntity : listJeecgDemoExcelEntitys) {
                    studentInfoService.save(studentInfoEntity);
          studentInfoEntity.setYear(year);
                }
                j.setMsg("文件导入成功!");
            } catch (Exception e) {
              e.printStackTrace();
                j.setMsg("文件导入失败!");
                logger.error(e.getMessage());
            }finally{
                try {
                    file.getInputStream().close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return j;
    }
相关文章
|
6月前
|
SQL 缓存 easyexcel
面试官问10W 行级别数据的 Excel 导入如何10秒处理
面试官问10W 行级别数据的 Excel 导入如何10秒处理
267 0
|
2月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
5月前
|
SQL 存储 数据库
excel导入sql数据库
将Excel数据导入SQL数据库是一个相对常见的任务,可以通过多种方法来实现。以下是一些常用的方法: ### 使用SQL Server Management Studio (SSMS) 1
|
5月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表
杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表
38 0
|
3月前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md
|
4月前
|
存储 关系型数据库 MySQL
Excel 导入 sql3
【7月更文挑战第18天】
45 2
|
4月前
|
数据格式 Python
Python代码示例,读取excel表格,将行数据转为列数据。(10)
【7月更文挑战第10天】Python代码示例,读取excel表格,将行数据转为列数据。
148 2
|
3月前
|
前端开发 easyexcel
SpringBoot+Vue3实现Excel导入
SpringBoot+Vue3实现Excel导入
107 0
|
5月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第六讲 根据制定列创建相应工作表及数据
杨老师课堂之Excel VBA 程序开发第六讲 根据制定列创建相应工作表及数据
31 1
|
5月前
|
easyexcel Java API
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
1054 1