首頁  >  文章  >  Java  >  springboot layui hutool Excel導入如何實現

springboot layui hutool Excel導入如何實現

WBOY
WBOY轉載
2023-05-14 17:04:171592瀏覽

    一、導入依賴

    (一)其他環境準備

    首先前期根據需求需要建立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: &#39;3072&#39;,
                accept: "file",
                exts: &#39;xls|xlsx|xlsm|xlt|xltx|xltm&#39;,
                done: function (result) {
                    if (result.status == 0) {
                        parent.layui.table.reload(&#39;LAY-app-emp-list&#39;);
                    }
                    if (result.message != null) {
                        parent.layui.table.reload(&#39;LAY-app-emp-list&#39;);
                        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導入如何實現

    (三)進入到業務處理

    springboot layui hutool Excel導入如何實現

    以上是springboot layui hutool Excel導入如何實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除