最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成及Excel文件的導(dǎo)入和導(dǎo)出

 更新時(shí)間:2021年11月30日 16:33:59   作者:小王java  
Hutool是一個(gè)小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,本文主要介紹了使用Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成和excel文件的導(dǎo)入、導(dǎo)出,需要的朋友可參考一下

1、Hutool工具簡介

HuTool工具(糊涂工具),第三方插件工具,簡化操作,是國產(chǎn)的一個(gè)產(chǎn)品,界面簡潔易懂,比較人性化。(上班可能經(jīng)常用的到,建議收藏起來)

Hutool是一個(gè)小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,使Java擁有函數(shù)式語言般的優(yōu)雅,讓Java語言也可以“甜甜的”。

2、Hutool的相關(guān)依賴

maven項(xiàng)目在pom.xml添加以下依賴即可:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>4.6.3</version>
</dependency>

3、驗(yàn)證碼工具

   @Test
    public void hutoolCodeTest() throws FileNotFoundException {
        /**、
         * 1、創(chuàng)建一個(gè)驗(yàn)證碼:
         *  驗(yàn)證碼 captcha['k?pt??]
         *  line:線條
         *  參數(shù)說明
         *  width:寬度
         *  height:高度
         *  codeCount:字符數(shù)量
         *  lineCount:干擾線數(shù)量
         */
        LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 40, 4, 4);
        //2.獲得生成的驗(yàn)證碼的真實(shí)碼值
        String code = lineCaptcha.getCode();
        System.out.println(code);
        //3.將驗(yàn)證碼圖片輸出到D盤根目錄下
        lineCaptcha.write(new FileOutputStream("D:/text.png"));
    }?

?

4、excel工具

POI依賴導(dǎo)入,否則報(bào)錯(cuò)

You need to add dependency of 'poi-ooxml' to your project, and version >= 3.17

 <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>3.17</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml-schemas</artifactId>
      <version>3.17</version>
    </dependency>

(1)Exel導(dǎo)出

 @Test
    public void HutollDownLoadExcelTest() throws FileNotFoundException {
        //1.創(chuàng)建一個(gè)Excel寫出工具Writer
        ExcelWriter writer = ExcelUtil.getWriter(true);
        //2.模擬List數(shù)據(jù)
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        //3.將list數(shù)據(jù)輸出到excel中
        writer.write(list);
        //4. 將填充數(shù)據(jù)后的excel文件保存在d盤文件中.
        writer.flush(new FileOutputStream("d:/id.xlsx"));
    }

(2)excel導(dǎo)出詳細(xì)講解

實(shí)體類

public class User {
    private String id;
    private String name;
    private Integer age;

測試類

//1. 創(chuàng)建一個(gè)Excel寫出工具Writer
        ExcelWriter writer = ExcelUtil.getWriter(true);
        //2. 設(shè)置別名
        writer.addHeaderAlias("id","編號");
        writer.addHeaderAlias("name","名字");
        writer.addHeaderAlias("age","年齡");
        writer.addHeaderAlias("birth","生日");
        //3. 先輸出一行標(biāo)題(參數(shù)1是跨列數(shù), 從0開始. 參數(shù)2 是標(biāo)題字符串)
        writer.merge(3,"標(biāo)題");
        //4. 模擬list集合數(shù)據(jù)
        List<User> users = getUsers();
        //5. 將users數(shù)據(jù)輸出到excel文件中.
        writer.write(users,true);// true表示并輸出標(biāo)題。
        //6. 將填充數(shù)據(jù)后的excel文件保存在d盤文件中.
        writer.flush(new FileOutputStream("D:/users.xlsx"));
    }

    private List<User> getUsers(){
        List<User> list = new ArrayList<>();
        list.add(new User("1001","張三",18,new Date()));
        list.add(new User("1002","張三",18,new Date()));
        list.add(new User("1003","張三",18,new Date()));
        list.add(new User("1004","張三",18,new Date()));
        return list;
    }

(2)Excel導(dǎo)入

 @Test
    public void HutollUploadExcelTest() throws FileNotFoundException {
        //1. 創(chuàng)建一個(gè)Excel讀取工具reader
        ExcelReader reader = ExcelUtil.getReader(new FileInputStream("D:/users.xlsx"));
        //2. 設(shè)置讀取的數(shù)據(jù)的別名和封裝的實(shí)體的屬性對應(yīng)關(guān)系.
        reader.addHeaderAlias("編號","id");
        reader.addHeaderAlias("名字","name");
        reader.addHeaderAlias("年齡","age");
        reader.addHeaderAlias("生日","birth");
    /*
        reader讀取excel文件數(shù)據(jù)
        參數(shù)說明
            headerRowIndex: 映射的數(shù)據(jù)標(biāo)題在第幾行, 從0開始算.
            startRowIndex: 實(shí)際讀取的數(shù)據(jù)從第幾行開始, 從0開始算.
            class: 讀取的數(shù)據(jù)封裝成什么類型的對象

     */
        List<User> users = reader.read(1, 2, User.class);
        // 輸出返回的users集合
        System.out.println(users);
        // 輸出users的大小.
        System.out.println(users.size());
    }

?

到此這篇關(guān)于Java Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成及Excel文件的導(dǎo)入和導(dǎo)出的文章就介紹到這了,更多相關(guān)Java Hutool工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java高性能本地緩存框架Caffeine的實(shí)現(xiàn)

    Java高性能本地緩存框架Caffeine的實(shí)現(xiàn)

    本文主要介紹了Java高性能本地緩存框架Caffeine的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SpringBoot響應(yīng)Json數(shù)據(jù)亂碼通過配置的解決

    SpringBoot響應(yīng)Json數(shù)據(jù)亂碼通過配置的解決

    這篇文章主要介紹了SpringBoot響應(yīng)Json數(shù)據(jù)亂碼通過配置的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java使用EasyExcel導(dǎo)出上萬數(shù)據(jù)如何避免OOM

    java使用EasyExcel導(dǎo)出上萬數(shù)據(jù)如何避免OOM

    本文主要介紹了使用EasyExcel導(dǎo)出大量數(shù)據(jù)時(shí)避免OOM問題的方法,通過分頁查詢和分批次寫入Excel,可以有效避免內(nèi)存溢出,并提供了一個(gè)封裝好的工具類,簡化了導(dǎo)出代碼的編寫
    2024-11-11
  • Spring boot如何集成kaptcha并生成驗(yàn)證碼

    Spring boot如何集成kaptcha并生成驗(yàn)證碼

    這篇文章主要介紹了Spring boot如何集成kaptcha并生成驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • springboot?vue項(xiàng)目管理前后端實(shí)現(xiàn)編輯功能

    springboot?vue項(xiàng)目管理前后端實(shí)現(xiàn)編輯功能

    這篇文章主要為大家介紹了springboot?vue項(xiàng)目管理前后端實(shí)現(xiàn)編輯功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Mybatis查詢語句結(jié)果集的總結(jié)大全

    Mybatis查詢語句結(jié)果集的總結(jié)大全

    這篇文章主要給大家總結(jié)介紹了關(guān)于Mybatis查詢語句結(jié)果集的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • 從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

    從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

    這篇文章主要介紹了從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java中常見延時(shí)隊(duì)列的實(shí)現(xiàn)方案小結(jié)(建議收藏)

    Java中常見延時(shí)隊(duì)列的實(shí)現(xiàn)方案小結(jié)(建議收藏)

    延時(shí)隊(duì)列它要具有隊(duì)列的特性,再給它附加一個(gè)延遲消費(fèi)隊(duì)列消息的功能,也就是說可以指定隊(duì)列中的消息在哪個(gè)時(shí)間點(diǎn)被消費(fèi),這篇文章主要介紹了Java中常見延時(shí)隊(duì)列的實(shí)現(xiàn)方案總結(jié),需要的朋友可以參考下
    2024-04-04
  • SpringBoot?+?Redis如何解決重復(fù)提交問題(冪等)

    SpringBoot?+?Redis如何解決重復(fù)提交問題(冪等)

    在開發(fā)中,一個(gè)對外暴露的接口可能會面臨瞬間的大量重復(fù)請求,本文就介紹了SpringBoot + Redis如何解決重復(fù)提交問題,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • java動(dòng)態(tài)綁定和靜態(tài)綁定用法實(shí)例詳解

    java動(dòng)態(tài)綁定和靜態(tài)綁定用法實(shí)例詳解

    這篇文章主要介紹了java動(dòng)態(tài)綁定和靜態(tài)綁定用法,結(jié)合實(shí)例形式詳細(xì)分析了java動(dòng)態(tài)綁定與靜態(tài)綁定相關(guān)概念、原理、實(shí)現(xiàn)方法及使用注意事項(xiàng),需要的朋友可以參考下
    2019-05-05

最新評論

金乡县| 新安县| 镇安县| 涟水县| 富源县| 华阴市| 黄大仙区| 罗田县| 曲阜市| 兴化市| 三明市| 仙居县| 太湖县| 柯坪县| 桃江县| 鄂托克旗| 无极县| 慈利县| 太原市| 巴南区| 平邑县| 河东区| 景洪市| 枝江市| 科技| 旺苍县| 定襄县| 仙桃市| 乌恰县| 新巴尔虎右旗| 石屏县| 鲜城| 文昌市| 沙湾县| 乌拉特前旗| 文成县| 勐海县| 鄯善县| 手游| 瓦房店市| 林州市|