Java 工具类库 XXL-TOOL

发布于 2021-09-18 22:28:49 字数 8032 浏览 1743 评论 0

一、简介

1.1 概述

XXL-TOOL 是一个 Java 工具类库,致力于让 Java 开发更高效。包含 集合、缓存、并发、字符串、IO、Excel、Emoji…… 等数十个模块。

1.2 组件列表

模块说明
Core模块包含集合、缓存、日期……等基础组件工具
Excel模块一个灵活的Java对象和Excel文档相互转换的工具。一行代码完成Java对象和Excel之间的转换
Emoji模块一个灵活可扩展的Emoji表情编解码库,可快速实现Emoji表情的编解码
Json模块json序列化、反序列化库
Fiber模块Java协程库,基于quasar封装实现

1.4 下载

源码仓库地址

源码仓库地址Release Download
https://github.com/xuxueli/xxl-toolDownload
https://gitee.com/xuxueli0323/xxl-toolDownload

1.5 环境

  • JDK:1.8+

1.6 Maven依赖

<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-tool/ -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-tool</artifactId>
    <version>${最新稳定版}</version>
</dependency>

三、Excel模块

3.1 Maven依赖

添加 xxl-tool 依赖。

3.2 快速入门

  • a、定义Java对象
@ExcelSheet(name = "商户列表", headColor = HSSFColor.HSSFColorPredefined.LIGHT_GREEN)
public class ShopDTO {
    @ExcelField(name = "商户ID")
    private int shopId;
    @ExcelField(name = "商户名称")
    private String shopName;
    public ShopDTO() {
    }
    public ShopDTO(int shopId, String shopName) {
        this.shopId = shopId;
        this.shopName = shopName;
    }
    // set、get
}
  • b、Excel 导出:Object 转换为 Excel
// 参考测试代码:com.xxl.tool.test.excel.ExcelToolTest
/**
 * Excel导出:Object 转换为 Excel
 */
public static void exportToFile(boolean xlsx, List<List<?>> sheetDataListArr, String filePath){
  • c、Excel 导入:Excel 转换为 Object
/**
* Excel导入:Excel 转换为 Object
*/
public static List<Object> importExcel(String filePath, Class<?> sheetClass) {

3.3 功能定位

一个灵活的Java对象和Excel文档相互转换的工具。一行代码完成Java对象和Excel文档之间的转换。同时保证性能和稳定。
(原名 XXL-EXCEL)

3.4 特性

  • 1、Excel导出:支持Java对象装换为Excel,并且支持File、字节数组、Workbook等多种导出方式;
  • 2、Excel导入:支持Excel转换为Java对象,并且支持File、InputStream、文件路径、Workbook等多种导入方式;
  • 3、全基础数据类型支持:Excel的映射Java对象支持设置任意基础数据类型,将会自动完整值注入;
  • 4、Field宽度自适应;
  • 5、多Sheet导出:导出Excel时支持设置多张sheet;
  • 6、多Sheet导入:导入Excel时支持设置多张sheet,通过 “@ExcelSheet.name” 注解匹配Sheet;

3.5 Java 对象 和 Excel映射关系

ExcelJava 对象
SheetJava对象列表
表头Sheet首行Java对象Field
数据Sheet一行记录Java对象列表中一个元素

3.6 核心注解:ExcelSheet

功能:描述Sheet信息,注解添加在待转换为Excel的Java对象类上,可选属性如下。

ExcelSheet说明
name表/Sheet名称
headColor表头/Sheet首行的颜色

3.7 核心注解:ExcelField

功能:描述Sheet的列信息,注解添加在待转换为Excel的Java对象类的字段上,可选属性如下。

ExcelField说明
name属性/列名称

四、Emoji模块

4.1 Maven依赖

添加 xxl-tool 依赖。

4.2 快速入门

  • a、使用示例
    // 参考测试代码:com.xxl.tool.test.emoji.EmojiToolTest String input = "一朵美丽的茉莉"; System.out.println("unicode:" + input); // 1、alias String aliases = EmojiTool.encodeUnicode(input, EmojiEncode.ALIASES); System.out.println("\naliases encode: " + aliases); System.out.println("aliases decode: " + EmojiTool.decodeToUnicode(aliases, EmojiEncode.ALIASES)); // 2、html decimal String decimal = EmojiTool.encodeUnicode(input, EmojiEncode.HTML_DECIMAL); System.out.println("\ndecimal encode: " + decimal); System.out.println("decimal decode: " + EmojiTool.decodeToUnicode(decimal, EmojiEncode.HTML_DECIMAL)); // 3、html hex decimal String hexdecimal = EmojiTool.encodeUnicode(input, EmojiEncode.HTML_HEX_DECIMAL); System.out.println("\nhexdecimal encode: " + hexdecimal); System.out.println("hexdecimal decode: " + EmojiTool.decodeToUnicode(hexdecimal, EmojiEncode.HTML_HEX_DECIMAL));
  • b、运行日志输出
  1. aliases encode: 一朵美丽的茉莉:rose:
  2. aliases decode: 一朵美丽的茉莉
  3. decimal encode: 一朵美丽的茉莉🌹
  4. decimal decode: 一朵美丽的茉莉
  5. hexdecimal encode: 一朵美丽的茉莉🌹
  6. hexdecimal decode: 一朵美丽的茉莉

4.3 功能定位

一个灵活可扩展的Emoji表情编解码库,可快速实现Emoji表情的编解码.
(原名 XXL-EMOJI)

4.4 特性

  • 1、简洁:API直观简洁,一分钟上手;
  • 2、易扩展:模块化的结构,可轻松扩展;
  • 3、别名自定义:支持为Emoji自定义别名;
  • 4、实时性:实时收录最新发布的Emoji;

4.5 Emoji编码类型

概念说明
EmojiEncode.ALIASES将Emoji表情转换为别名,格式为 “: alias :”;
EmojiEncode.HTML_DECIMAL将Emoji表情Unicode数据转换为十进制数据;
EmojiEncode.HTML_HEX_DECIMAL将Emoji表情Unicode数据转换为十六进制数据;

4.6 Emoji编解码API

API说明
public static String encodeUnicode(String input, EmojiTransformer transformer, FitzpatrickAction fitzpatrickAction)Emoji表情编码方法,支持自定义编码逻辑;
public static String encodeUnicode(String input, EmojiEncode emojiEncode, FitzpatrickAction fitzpatrickAction)Emoji表情编码方法,支持自定义编码类型;
public static String encodeUnicode(String input, EmojiEncode emojiEncode)Emoji表情编码方法,支持自定义编码类型;
public static String encodeUnicode(String input)Emoji表情编码方法,编码类型默认为 “ALIASES” ;
public static String decodeToUnicode(String input)Emoji表情解码方法,支持针对 “ALIASES、HTML_DECIMAL、HTML_HEX_DECIMAL” 等编码方式解码;
public static String removeEmojis(String input, final Collection emojisToRemove, final Collection emojisToKeep)清除输入字符串中的Emoji数据;
public static List findEmojis(String input)查找输入字符转中的全部Emoji数据列表;

4.7 自定义Emoji别名

五、Json模块

5.1 快速入门

  • 使用示例
Map<String, Object> result = new HashMap<>();
result.put("int", 200);
result.put("str", "success");
result.put("arr", Arrays.asList("111","222"));
result.put("float", 1.11f);
String json = BasicJsonTool.toJson(result);
System.out.println(json);
Object objectMap = BasicJsonTool.parseMap(json);
System.out.println(objectMap);

5.2 功能定位

一个小巧灵活的Json序列化、反序列化库.

5.3 特性

  • 1、简洁:API直观简洁,一分钟上手;
  • 2、小巧:第三方零依赖;

项目地址:https://www.xuxueli.com/xxl-tool/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

亚希

文章 0 评论 0

cyp

文章 0 评论 0

北漠

文章 0 评论 0

11223456

文章 0 评论 0

坠似风落

文章 0 评论 0

游魂

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文