Java 工具类库 XXL-TOOL
一、简介
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-tool | Download |
https://gitee.com/xuxueli0323/xxl-tool | Download |
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映射关系
— | Excel | Java 对象 |
---|---|---|
表 | Sheet | Java对象列表 |
表头 | 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、运行日志输出
aliases encode: 一朵美丽的茉莉:rose:
aliases decode: 一朵美丽的茉莉
decimal encode: 一朵美丽的茉莉🌹
decimal decode: 一朵美丽的茉莉
hexdecimal encode: 一朵美丽的茉莉🌹
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、小巧:第三方零依赖;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 分布式爬虫框架 XXL-CRAWLER
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论