首頁 > 軟體

springboot layui hutool Excel匯入的實現

2022-03-31 19:01:25

一、匯入依賴

(一)其他環境準備

首先前期根據需求需要搭建springboot+前端的框架,這個根據個人專案來,我是用的springboot+layui。這些不是這裡討論的重點。

(二)hutool和Excel匯入

<!-- 基本依賴包 -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.3.8</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.0</version>
</dependency>

必須推薦一波:

二、核心程式碼

(一)前端按鈕

前端程式碼不是核心,只是為了一個思路

//①按鈕
<button id="importData" class="layui-btn">匯入</button>
//②//匯入 用layui upload外掛
    layui.use([ "element", "laypage", "layer", "upload"], function() {
        debugger;
        var element = layui.element;
        var laypage = layui.laypage;
        var layer = layui.layer;
        var upload = layui.upload;//主要是這個
        layui.upload.render({
            elem: "#importData",//匯入id
            url: "/emp/importData",
            size: '3072',
            accept: "file",
            exts: 'xls|xlsx|xlsm|xlt|xltx|xltm',
            done: function (result) {
                if (result.status == 0) {
                    parent.layui.table.reload('LAY-app-emp-list');
                }
                if (result.message != null) {
                    parent.layui.table.reload('LAY-app-emp-list');
                    layer.msg(result.message)
                }
            }
        });
        // refreshTable()
    });

(二)後端程式碼

controller介面

@PostMapping(value = "/importData")
@ResponseBody
public CommonResult importData(@RequestParam MultipartFile file) {
    //呼叫service方法,這個地方通過MultipartFile引數就可以接收到上傳的Excel檔案內容了
    empService.importTemplate(file);
    return CommonResult.success("上傳成功");
}

service實現類程式碼

說明:這裡我們接收到file之後,通過hutool工具中的ExcelUtil工具幫我們解析檔案,等到一行一行的資料,這個時候我們只需要對映到我們的實體類中。這裡我只是寫了一個EmpDO中的兩個欄位,如果業務複雜參考這兩個欄位來就行了。

@Override
public void importTemplate(MultipartFile file) {
    InputStream inputStream = null;
    try {
        inputStream = file.getInputStream();
    }catch (Exception e){
        logger.info("檔案異常");
    }
    //指定輸入流和sheet
    ExcelReader reader = ExcelUtil.getReader(inputStream, 0); 
    // 讀取第二行到最後一行資料
    List<List<Object>> read = reader.read(1, reader.getRowCount());
    List<EmpDO> empDOS = new ArrayList<>();
    for (List<Object> objects : read) {
        EmpDO empDO = new EmpDO();
        //讀取某行第一列資料
        Object sampleNo = objects.get(0);
        //讀取某行第二列資料
        Object sampleName = objects.get(1);
        //員工id
        empDO.setEmpId(Integer.parseInt(sampleNo.toString()));
        //員工姓名
        empDO.setName(sampleName.toString());
        empDOS.add(empDO);
        //這裡沒有做資料插入到資料庫的操作,我用的是mybatisplus
        System.out.println(empDO);
    }
}

三、測試

(一)檔案准備:

(二)選擇匯入檔案

(三)進入到業務處理

 到此這篇關於springboot layui hutool Excel匯入的實現的文章就介紹到這了,更多相關springboot layui hutool Excel匯入內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com