Java Hutool工具实现验证码生成及Excel文件的导入和导出
作者:小王java 发布时间:2023-02-04 22:49:32
标签:Java,Hutool
1、Hutool工具简介
HuTool工具(糊涂工具),第三方插件工具,简化操作,是国产的一个产品,界面简洁易懂,比较人性化。(上班可能经常用的到,建议收藏起来)
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
2、Hutool的相关依赖
maven项目在pom.xml添加以下依赖即可:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.6.3</version>
</dependency>
3、验证码工具
@Test
public void hutoolCodeTest() throws FileNotFoundException {
/**、
* 1、创建一个验证码:
* 验证码 captcha['kæptʃə]
* line:线条
* 参数说明
* width:宽度
* height:高度
* codeCount:字符数量
* lineCount:干扰线数量
*/
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 40, 4, 4);
//2.获得生成的验证码的真实码值
String code = lineCaptcha.getCode();
System.out.println(code);
//3.将验证码图片输出到D盘根目录下
lineCaptcha.write(new FileOutputStream("D:/text.png"));
}
4、excel工具
POI依赖导入,否则报错
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导出
@Test
public void HutollDownLoadExcelTest() throws FileNotFoundException {
//1.创建一个Excel写出工具Writer
ExcelWriter writer = ExcelUtil.getWriter(true);
//2.模拟List数据
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
//3.将list数据输出到excel中
writer.write(list);
//4. 将填充数据后的excel文件保存在d盘文件中.
writer.flush(new FileOutputStream("d:/id.xlsx"));
}
(2)excel导出详细讲解
实体类
public class User {
private String id;
private String name;
private Integer age;
测试类
//1. 创建一个Excel写出工具Writer
ExcelWriter writer = ExcelUtil.getWriter(true);
//2. 设置别名
writer.addHeaderAlias("id","编号");
writer.addHeaderAlias("name","名字");
writer.addHeaderAlias("age","年龄");
writer.addHeaderAlias("birth","生日");
//3. 先输出一行标题(参数1是跨列数, 从0开始. 参数2 是标题字符串)
writer.merge(3,"标题");
//4. 模拟list集合数据
List<User> users = getUsers();
//5. 将users数据输出到excel文件中.
writer.write(users,true);// true表示并输出标题。
//6. 将填充数据后的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导入
@Test
public void HutollUploadExcelTest() throws FileNotFoundException {
//1. 创建一个Excel读取工具reader
ExcelReader reader = ExcelUtil.getReader(new FileInputStream("D:/users.xlsx"));
//2. 设置读取的数据的别名和封装的实体的属性对应关系.
reader.addHeaderAlias("编号","id");
reader.addHeaderAlias("名字","name");
reader.addHeaderAlias("年龄","age");
reader.addHeaderAlias("生日","birth");
/*
reader读取excel文件数据
参数说明
headerRowIndex: 映射的数据标题在第几行, 从0开始算.
startRowIndex: 实际读取的数据从第几行开始, 从0开始算.
class: 读取的数据封装成什么类型的对象
*/
List<User> users = reader.read(1, 2, User.class);
// 输出返回的users集合
System.out.println(users);
// 输出users的大小.
System.out.println(users.size());
}
来源:https://blog.csdn.net/weixin_44385486/article/details/121618124


猜你喜欢
- 为什么要写这篇文章经过了若干年的发展,Java逐步从java8升级为java11,java17。让我们对比学习一下最新一版的LTS版本和ja
- 本文实例讲述了C#检测DataSet是否为空的方法。分享给大家供大家参考。具体如下:下面的代码片段通过判断DataSet的Table数量来判
- 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对,例如在数组{7,5,6,4}中,一共存在5对逆序对,分别是{
- 概念介绍不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。01. 强引用这个就
- 工具准备jdk, maven, tomcat9, vscode;上述软件的安装配置在百度就能找到很多教程, 所以此处不详述.(jdk使用1.
- Android Dialog 动画实例详解动画描述: 动画与底部菜单一样出现和消失制作过程:1. 创建两个动画文件window_in.xml
- 本文主要讨论C#开发使用百度语音合成API在线将文本内容合成语音,保存为 MP3 文件,本文最后会提供本安全源代码以及运行软件包,
- @RequestBody,@RequestParam和@Param区别@Param@Param是mybatis中的注解,用注解来简化xml配
- 这篇文章主要介绍了Java集合使用 Iterator 删除元素,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 对于生成的sql语句 自动加上单引号的情况mybatis是这样的,如果表的字段跟系统字段冲突,写sql语句的时候必须得加上单引号,这样才会区
- 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net包中J2SE的API包含有类和接口,它们提供低层
- 基本步骤三数取中在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。在此我们采用三数取中法,也就是取左端、中间
- 前段时间做课程作业网站后端,运用Spring boot+MyBatis的框架进行设计,Postman进行接口的检测,出现了一些问题。出现的问
- Map 中ConcurrentHashMap是线程安全的,但不是所有操作都是,例如get()之后再put()就不是了,这时使用merge()
- 在android 6.0开始,部分的权限需要我们动态申请,也就是说当我们的打开app的时候系统不会主动像您申请app所需要的部分权限,需要客
- 1.添加依赖直接添加 hibernate-validator<dependency> &n
- 本文实例为大家分享了java实现简单扫雷游戏的具体代码,供大家参考,具体内容如下package com.test.swing;import
- 本文实例为大家分享了C#实现简易点餐功能的具体代码,供大家参考,具体内容如下图示效果实现过程1.设计界面2.设计控件及其属性3.实现点击事件
- 这篇文章主要介绍了SpringBoot如何通过devtools实现热部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 《Spring Boot Actuator详解与深入应用》预计包括三篇,第一篇重点讲Spring Boot Actuator 1.x的应用与