ホームページ  >  記事  >  Java  >  springboot lauiui hutool Excelインポートを実装する方法

springboot lauiui hutool Excelインポートを実装する方法

WBOY
WBOY転載
2023-05-14 17:04:171546ブラウズ

    1. 依存関係のインポート

    (1) その他の環境準備

    まず、必要に応じて springboot フロントエンド フレームワークを構築します。これは個人的なプロジェクトでは springboot laui を使用しています。これらはここでの議論の焦点では​​ありません。

    (2) 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>

    必須:

    2. コア コード

    (1) フロントエンド ボタン

    フロントエンド コードはコアではなく、単なるアイデアです

    //①按钮
    <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()
        });

    (2) バックエンド コード

    コントローラー インターフェイス

    @PostMapping(value = "/importData")
    @ResponseBody
    public CommonResult importData(@RequestParam MultipartFile file) {
        //调用service方法,这个地方通过MultipartFile参数就可以接收到上传的Excel文件内容了
        empService.importTemplate(file);
        return CommonResult.success("上传成功");
    }

    サービス実装クラス コード

    説明 : ここでファイルを受信した後、hutool ツールの ExcelUtil ツールを使用してファイルを解析し、データが 1 行ずつ表示されるまで待ちます。現時点では、それを次のようにマップするだけです。私たちのエンティティクラス。ここでは EmpDO に 2 つのフィールドを記述しましたが、業務が複雑な場合は、この 2 つのフィールドを参照してください。

    @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);
        }
    }

    3.Test

    (1) ファイルの準備:

    springboot lauiui hutool Excelインポートを実装する方法

    ## (2) インポートファイルを選択

    springboot lauiui hutool Excelインポートを実装する方法

    (3) 事務処理入力

    ##

    以上がspringboot lauiui hutool Excelインポートを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。