一帧数据 django ClickHouse 数据算法 Java程序员 testing merge dtel语言 ios5 jquery触发change事件 datetimepicker赋值 linux获取当前时间 新手学c还是java java二维数组赋值 反函数的二阶导数 kubernetes视频教程 python网络编程 郑州普通话 python如何注释 python调用函数 python命令行参数 java编程环境 java获取当前线程 java怎么配置环境变量 java查看变量类型 linux基础教程 html实例教程 linux内核编程 倒计时计时器 rar去广告 maxtoc4d c语言代码表白 自动回复机器人 python缩进规则 c4d文字 3dmax材质编辑器 Linux进程查看 淘宝网安卓版 magicexif 3dmax人物建模
当前位置: 首页 > 学习教程  > 编程语言

springboot集成easyExcel导入excel

2020/11/24 9:13:12 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

easyExcel需要的jar包 <!-- easyexcel 主要依赖 这一个基本上就够了--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version></dependency>//导入excelRequestMap…

 easyExcel需要的jar包

<!-- easyexcel 主要依赖  这一个基本上就够了-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.6</version>
        </dependency>

    //导入excel
    @RequestMapping(value = "excelImport", method = {RequestMethod.GET, RequestMethod.POST })
    public void excelImport(HttpServletRequest request, @RequestParam("file") MultipartFile files) throws Exception {
            MultipartFile file = files;
            Map<String,Object> result = EasyExcelUtil.readExcel(file, new GybPatient(),1);
            patientInfoService.excelImport(result);
    }
package com.picc.config;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;
 
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.metadata.BaseRowModel;
import com.alibaba.excel.metadata.Sheet;
 
public class EasyExcelUtil {
	
    /**
     * 读取某个 sheet 的 Excel
     *
     * @param excel    文件
     * @param rowModel 实体类映射,继承 BaseRowModel 类
     * @return Excel 数据 list
     */
    public static List<Object> readExcel(MultipartFile excel, BaseRowModel rowModel) throws IOException {
        return readExcel(excel, rowModel, 1, 1);
    }
 
    /**
     * 读取某个 sheet 的 Excel
     * @param excel       文件
     * @param rowModel    实体类映射,继承 BaseRowModel 类
     * @param sheetNo     sheet 的序号 从1开始
     * @return Excel 数据 list
     */
    public static Map<String,Object> readExcel(MultipartFile excel, BaseRowModel rowModel, int sheetNo) throws IOException {
    	Map<String,Object> result = new HashMap<>();
    	ExcelListener excelListener = new ExcelListener();
        ExcelReader reader = getReader(excel, excelListener);
        if (reader == null) {
            return null;
        }
        reader.read(new Sheet(sheetNo, 0, rowModel.getClass()));    
        //校验表头
        Boolean flag = false;
        if(excelListener.getImportHeads().equals(excelListener.getModelHeads())){
        	flag = true;
        }
        result.put("flag", flag);
        result.put("datas", excelListener.getDatas());
        return result;
    }
 
    /**
     * 读取某个 sheet 的 Excel
     * @param excel       文件
     * @param rowModel    实体类映射,继承 BaseRowModel 类
     * @param sheetNo     sheet 的序号 从1开始
     * @param headLineNum 表头行数,默认为1
     * @return Excel 数据 list
     */
    public static List<Object> readExcel(MultipartFile excel, BaseRowModel rowModel, int sheetNo, int headLineNum) throws IOException {
        ExcelListener excelListener = new ExcelListener();
        ExcelReader reader = getReader(excel, excelListener);
        if (reader == null) {
            return null;
        }
        reader.read(new Sheet(sheetNo, headLineNum, rowModel.getClass()));
        return excelListener.getDatas();
    }
    
    /**
     * 读取指定sheetName的Excel(多个 sheet)
     * @param excel    文件
     * @param rowModel 实体类映射,继承 BaseRowModel 类
     * @return Excel 数据 list
     * @throws IOException 
     */
    public static List<Object> readExcel(MultipartFile excel, BaseRowModel rowModel,String sheetName) throws IOException {
        ExcelListener excelListener = new ExcelListener();
        ExcelReader reader = getReader(excel, excelListener);
        if (reader == null) {
            return null;
        }
        for (Sheet sheet : reader.getSheets()) {
            if (rowModel != null) {
                sheet.setClazz(rowModel.getClass());
            }
            //读取指定名称的sheet
            if(sheet.getSheetName().contains(sheetName)){
            	reader.read(sheet);
            	break;
            }
        }
        return excelListener.getDatas();
    }
 
    /**
     * 返回 ExcelReader
     * @param excel 需要解析的 Excel 文件
     * @param excelListener new ExcelListener()
     * @throws IOException 
     */
    private static ExcelReader getReader(MultipartFile excel,ExcelListener excelListener) throws IOException {
        String filename = excel.getOriginalFilename();
        if(filename != null && (filename.toLowerCase().endsWith(".xls") || filename.toLowerCase().endsWith(".xlsx"))){
            InputStream is = new BufferedInputStream(excel.getInputStream());
            return new ExcelReader(is, null, excelListener, false);
        }else{
            return null;
        }
    }
    
}
 public void excelImport(Map<String, Object> result) {
        Boolean flag = (Boolean) result.get("flag");
        // if(flag){
        List<Object> list = (List<Object>) result.get("datas");
        System.out.println(list);
        if(list != null && list.size() > 0){
            for(Object o : list){
                GybPatient xfxx = (GybPatient) o;
                xfxx.setBalance("400");
                xfxx.setCreateUser("张崇俊");
                xfxx.setCreatedate(new Date());
                try {
                    gybPatientMapper.insertPatient(xfxx);
                }catch (Exception e){

                }
            }
        }
    }

 


本文链接: http://www.dtmao.cc/news_show_400009.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?