文章目录
前言
当今互联网时代,数据处理已成为我们工作中的重要一环。无论是在企业管理中,还是在个人日常生活中,数据的管理和分析都至关重要。在数据处理中,导出数据到Excel或CSV文件成为一种非常普遍的需求。例如我们需要将数据导出到Excel文件供运营或者财务人员分析使用,数据导出到CSV文件提供CRM系统导入。本篇技术博客将介绍使用Hutool工具生成Excel和CSV文件的基本流程,并演示如何在一个接口中通过将Excel和CSV文件压缩到Zip压缩包中且不生成本地文件。
Hutool工具简介
Hutool是一个小而全的Java工具类库。它包含了一系列的工具类,如字符串分割、替换、格式化等的字符串处理工具、文件读取、写入、复制、移动等文件操作工具、日期格式化、计算、转换等功能的日期时间处理工具等等可以帮助Java开发者提高开发效率,满足大多数的Java开发中的工具类的需求,减少重复劳动。Hutool官网地址
Hutool提供了如下工具组件:
| 模块 | 介绍 |
|---|---|
| hutool-aop | JDK动态代理封装,提供非IOC下的切面支持 |
| hutool-bloomFilter | 布隆过滤,提供一些Hash算法的布隆过滤 |
| hutool-cache | 简单缓存实现 |
| hutool-core | 核心,包括Bean操作、日期、各种Util等 |
| hutool-cron | 定时任务模块,提供类Crontab表达式的定时任务 |
| hutool-crypto | 加密解密模块,提供对称、非对称和摘要算法封装 |
| hutool-db | JDBC封装后的数据操作,基于ActiveRecord思想 |
| hutool-dfa | 基于DFA模型的多关键字查找 |
| hutool-extra | 扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等) |
| hutool-http | 基于HttpUrlConnection的Http客户端封装 |
| hutool-log | 自动识别日志实现的日志门面 |
| hutool-script | 脚本执行封装,例如Javascript |
| hutool-setting | 功能更强大的Setting配置文件和Properties封装 |
| hutool-system | 系统参数调用封装(JVM信息等) |
| hutool-json | JSON实现 |
| hutool-captcha | 图片验证码实现 |
| hutool-poi | 针对POI中Excel和Word的封装 |
| hutool-socket | 基于Java的NIO和AIO的Socket封装 |
| hutool-jwt | JSON Web Token (JWT)封装实现 |
使用方式如下:
🍊Maven
在项目的pom.xml的dependencies中加入以下内容:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
🍐Gradle
implementation 'cn.hutool:hutool-all:5.8.16'
因为小编的工作岗位每天都要都要写日报,疫情期间由直接文字提交变为了使用Excel制式文件(加剧内卷???),在写了几个月以后终于借助某个需要导出Excel文件的需求顺势来生成Excel工作日报,本文借助我的工作日报演示生成Excel文件,主要包含了Excel单元格字体设置、合并单元格合、自动换行、设置背景颜色等主要Excel操作。整体的设想为通过代码生成Excel日志制式文件,在输入给ChatGPT本周的工作目标借助ChatGPT的废话文学特点自动填充日报,达到自动写日报的目的。目前实现了生成日报制式文件功能,先记录下来。工作日报Excel制式主要包含今日复盘和明日工作计划文件如下:
- 今日复盘如下:

- 明天规划如下:

Excel的字体和样式
分析上面的工作日报文件每天都包含一个今日工作复盘和明日工作规划,同时TODO List 字体大小与其它内容的字体不一样,且有不同的背景颜色, 字体加粗,内容自动换行。
-
添加Hutool依赖
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.2</version> </dependency>Hutool-all中包含了Hutool的所有工具类,由于需要生成Excel文件需要依赖poi(ps:许多人诟病Hutool的原因之一?)
-
Excel文件Cell字体设置
主要设置Excel字体名称、字体大小、字体颜色、下划线、是否加粗、是否斜体、是否有删除线等常用的字体设置方法,代码如下:
/** * 单元格字体常用设置基础方法 * * @param writer ExcelWriter * @param fontName 字体名称(ex:微软雅黑、宋体、仿宋,需要底层操作系统支持) * @param fontSize 字体大小 * @param color 字体颜色 * @param underline 下划线样式 * @param bold 是否加粗 * @param strikeout 是否有删除线 * @param italic 是否斜体 * @return Font */ public static Font createCellBaseFont(ExcelWriter writer, String fontName, short fontSize, short color, byte underline, boolean bold, boolean strikeout, boolean italic) { // 创建单元格Cell字体 Font font = writer.createFont(); // 设置字体名称(ex:微软雅黑、宋体、仿宋) font.setFontName(fontName); // 设置字体大小 font.setFontHeightInPoints(fontSize); // 设置字体颜色 font.setColor(color); // 设置字体是否加粗 font.setBold(bold); // 设置字体下划线样式 font.setUnderline(underline); // 设置是否有删除线 font.

本文介绍了如何使用Hutool工具库生成Excel和CSV文件,包括字体设置、单元格样式、合并单元格等操作,并展示了通过代码自动生成工作日报的示例。此外,文章探讨了现有功能的不足,提出利用ChatGPT增强自动化生成和编辑日报的可能性。
最低0.47元/天 解锁文章
4351

被折叠的 条评论
为什么被折叠?



